1. Покажи пути распространения вирусов. Отметь правильные ответы. Носители информации Интернет о Компьютерные программы Принтер, сканер и др. Браузеры Компьютерные сети
если кучки имею одинаковый вес, значит фальшивая монета - третья.
Если вес ранзый, значит фальшивая одна из взвешиваемых монет. Значит та что лежит отдельно - настоящая. Сравним по весу одну из этих двух с третьей и узнаем какая из них фальшивая. (макс два взвешивания)
для четырех:
разобъем на три кучки 1, 1 и 2 монеты
взесим кучки по одной монете, если они разные, значит фальишвка среди них. Взвесим одну из монет с одной из оставшихся и сразу выясним какая фальшивка.
Если же кучки из 1 монеты одинаковые значит они обе настоящие. Возьмем одну из неиспользованных монет и взвесим с одной из настоящих. Сразу поймем какая из двух оставшихся фальшивая (макс 2 взвешивания)
для пяти
две кучки по две монеты и одна из одной.
взвесим две кучки между собой. если они одинаковые по весу, значит фальшивка - оставшаяся пятая.
если кучки разные по весу, то надо найти какая же из четырех монет фальшивая. задача сводится к предыдущей про 4 монеты (макс 3 взвешивания)
для шести монет
три кучки по две монеты. сравниваем две из них
если кучки имеют одинаковый вес, значит фальшивка в оставшейся кучке, а все взвешанные четыре монеты - подлинные.
взвешиваем одну из оставшихся монет с одной из подлинных и понимаем какая фальшивка из оставшихся.
Либо если первые две кучки имеют разный вес, то задача сводится к задаче с четырьмя монетами. Итого макимум 3 взвешивания.
Примечание, как правило задача формулируется не так и мы уже точно знаем, что фальшивка легче,
тогда алгоритмы:
3 монеты:
взвешиваем две, если какая то из них легче - фальшивка, если нет, значит оставшаяся фальшивка - 1 взвешивание
4 монеты
берем две монеты взвешиваем. если одна легче - она фальшивка, если одинаковый вес, то взвешиваем между собой две другие, та которая легче - фальшивка 2 взвешивания
5 монет.
две кучки по две монеты взвешиваем. Если одинаковый вес, то фальшивка - пятая монета, если одна из кучек легче - фальшивка в ней. взвешиваем две монеты легкой кучки между собой - легкая и есть фальшивка. 2 взвешивания
6 монет. две кучки по две монетки взвешиваем между собой. если вес одинаков - взвешиваем между собой две оставшиеся монеты - фальшивка найдена,
если вес разный, то в легкой кучке фальшивка. Взвесим между собой монетки из наиболее легкой кучке - найдена фальшивка. 2 взвешивания.
Общая идея:
так как у весов три положения, то монеты надо стараться бить на три множества.
Усложнённый вариант(всё работает исправно,при вводе больше или меньше 3 чисел выводится сообщение "Это не трёхзначное число!"):
var i,a,d:integer; s:string; begin writeln('Введите трёхзначное число '); read(s); d:=length(s); if d<>3 then write('Это не трёхзначное число!'); if d=3 then if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then write('Да') else write('Нет'); end.
Простой вариант(выводится ошибка если цифр больше или меньше трёх!):
var i,a,d:integer; s:string; begin writeln('Введите трёхзначное число '); read(s); if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then write('Да') else write('Нет'); end.
Даю 2 варианта, так-как незнаю,проходили ли вы функцию "length" или нет. Если нет,то препад заподозрит что вы списали откуда нибудь или вам кто-то подсказал.
тогда для трех монет: взвешиваем две наугад
если кучки имею одинаковый вес, значит фальшивая монета - третья.
Если вес ранзый, значит фальшивая одна из взвешиваемых монет. Значит та что лежит отдельно - настоящая. Сравним по весу одну из этих двух с третьей и узнаем какая из них фальшивая. (макс два взвешивания)
для четырех:
разобъем на три кучки 1, 1 и 2 монеты
взесим кучки по одной монете, если они разные, значит фальишвка среди них. Взвесим одну из монет с одной из оставшихся и сразу выясним какая фальшивка.
Если же кучки из 1 монеты одинаковые значит они обе настоящие. Возьмем одну из неиспользованных монет и взвесим с одной из настоящих. Сразу поймем какая из двух оставшихся фальшивая (макс 2 взвешивания)
для пяти
две кучки по две монеты и одна из одной.
взвесим две кучки между собой. если они одинаковые по весу, значит фальшивка - оставшаяся пятая.
если кучки разные по весу, то надо найти какая же из четырех монет фальшивая. задача сводится к предыдущей про 4 монеты (макс 3 взвешивания)
для шести монет
три кучки по две монеты. сравниваем две из них
если кучки имеют одинаковый вес, значит фальшивка в оставшейся кучке, а все взвешанные четыре монеты - подлинные.
взвешиваем одну из оставшихся монет с одной из подлинных и понимаем какая фальшивка из оставшихся.
Либо если первые две кучки имеют разный вес, то задача сводится к задаче с четырьмя монетами. Итого макимум 3 взвешивания.
Примечание, как правило задача формулируется не так и мы уже точно знаем, что фальшивка легче,
тогда алгоритмы:
3 монеты:
взвешиваем две, если какая то из них легче - фальшивка, если нет, значит оставшаяся фальшивка - 1 взвешивание
4 монеты
берем две монеты взвешиваем. если одна легче - она фальшивка, если одинаковый вес, то взвешиваем между собой две другие, та которая легче - фальшивка 2 взвешивания
5 монет.
две кучки по две монеты взвешиваем. Если одинаковый вес, то фальшивка - пятая монета, если одна из кучек легче - фальшивка в ней. взвешиваем две монеты легкой кучки между собой - легкая и есть фальшивка. 2 взвешивания
6 монет. две кучки по две монетки взвешиваем между собой. если вес одинаков - взвешиваем между собой две оставшиеся монеты - фальшивка найдена,
если вес разный, то в легкой кучке фальшивка. Взвесим между собой монетки из наиболее легкой кучке - найдена фальшивка. 2 взвешивания.
Общая идея:
так как у весов три положения, то монеты надо стараться бить на три множества.
Усложнённый вариант(всё работает исправно,при вводе больше или меньше 3 чисел выводится сообщение "Это не трёхзначное число!"):
var
i,a,d:integer;
s:string;
begin
writeln('Введите трёхзначное число ');
read(s);
d:=length(s);
if d<>3 then
write('Это не трёхзначное число!');
if d=3 then
if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then
write('Да')
else
write('Нет');
end.
Простой вариант(выводится ошибка если цифр больше или меньше трёх!):
var
i,a,d:integer;
s:string;
begin
writeln('Введите трёхзначное число ');
read(s);
if (s[1]=s[2])or(s[1]=s[3])or(s[2]=s[3]) then
write('Да')
else
write('Нет');
end.
Даю 2 варианта, так-как незнаю,проходили ли вы функцию "length" или нет.
Если нет,то препад заподозрит что вы списали откуда нибудь или вам кто-то подсказал.