проверено в турбопаскаль 7
var ost,n: longint; i,kvadrat, udvsumma: integer; numbers: array[1..10] of integer; beginwriteln(''); write('input n: '); readln(n); writeln('vi vveli: ',n); ost: =n; i: =0; while (ost> 0) dobegin i: =i+1; numbers[i]: =ost mod 10; ost: =ost div 10;
end; if(i< 3) thenbeginwriteln('! nado vvesti minimum 3 znaka chislo'); endelsebeginkvadrat: =numbers[i]*numbers[i]; udvsumma: =2*(numbers[1]+numbers[2]); writeln('kvadrat pervogo=', kvadrat); writeln('udvoennaya summa poslednih=', udvsumma); if(udvsumma< kvadrat) thenwriteln('vse verno, udvoennaya summa menshe')elsewriteln('ne verno, udvoennaya summa ne menshe');
end; writeln('press enter'); readln; end.
тогда для трех монет: взвешиваем две наугад
если кучки имею одинаковый вес, значит фальшивая монета - третья.
если вес ранзый, значит фальшивая одна из взвешиваемых монет. значит та что лежит отдельно - настоящая. сравним по весу одну из этих двух с третьей и узнаем какая из них фальшивая. (макс два взвешивания)
для четырех:
разобъем на три кучки 1, 1 и 2 монеты
взесим кучки по одной монете, если они разные, значит фальишвка среди них. взвесим одну из монет с одной из оставшихся и сразу выясним какая фальшивка.
если же кучки из 1 монеты одинаковые значит они обе настоящие. возьмем одну из неиспользованных монет и взвесим с одной из настоящих. сразу поймем какая из двух оставшихся фальшивая (макс 2 взвешивания)
для пяти
две кучки по две монеты и одна из одной.
взвесим две кучки между собой. если они одинаковые по весу, значит фальшивка - оставшаяся пятая.
если кучки разные по весу, то надо найти какая же из четырех монет фальшивая. сводится к предыдущей про 4 монеты (макс 3 взвешивания)
для шести монет
три кучки по две монеты. сравниваем две из них
если кучки имеют одинаковый вес, значит фальшивка в оставшейся кучке, а все взвешанные четыре монеты - подлинные.
взвешиваем одну из оставшихся монет с одной из подлинных и понимаем какая фальшивка из оставшихся.
либо если первые две кучки имеют разный вес, то сводится к с четырьмя монетами. итого макимум 3 взвешивания.
примечание, как правило формулируется не так и мы уже точно знаем, что фальшивка легче,
тогда алгоритмы:
3 монеты:
взвешиваем две, если какая то из них легче - фальшивка, если нет, значит оставшаяся фальшивка - 1 взвешивание
4 монеты
берем две монеты взвешиваем. если одна легче - она фальшивка, если одинаковый вес, то взвешиваем между собой две другие, та которая легче - фальшивка 2 взвешивания
5 монет.
две кучки по две монеты взвешиваем. если одинаковый вес, то фальшивка - пятая монета, если одна из кучек легче - фальшивка в ней. взвешиваем две монеты легкой кучки между собой - легкая и есть фальшивка. 2 взвешивания
6 монет. две кучки по две монетки взвешиваем между собой. если вес одинаков - взвешиваем между собой две оставшиеся монеты - фальшивка найдена,
если вес разный, то в легкой кучке фальшивка. взвесим между собой монетки из наиболее легкой кучке - найдена фальшивка. 2 взвешивания.
общая идея:
так как у весов три положения, то монеты надо стараться бить на три множества.
Поделитесь своими знаниями, ответьте на вопрос:
Мне , послезавтра контрольная по с ) 1.даны выражения: а={7< 3}, b={4=5}, c={2< 3}. определите истинность составных высказываний: а) a => c^b, б) avcvb ø(a^b), в) cvb^a. 2. составьте истинные высказывания, применив эквиваленцию к высказываниям «в городе прекрасная погода» и «самолеты будут летать».