Информатика, вопрос задал bozarovmihail , 10 лет назад

написать алгоритм определения 1 фальшивой монеты, если неизвестно больше или меньше она весит в сравнении с настоящими монетами, на 4 взвешивание. Общее количество монет 22

Ответы на вопрос

Ответил preceptor
0
За четыре взвешивания невозможно определить, где фальшивая монета, если количество монет не является степенем двойки (2, 4, 8, 16, 32) и т.д.

Допустим, взвешиваем поровну:
11 на 11, а дальше как? 5 на 6? Там уже можно вычислить только множеством операций, и далеко не за 4 взвешивания.
Ответил archery
0
можно, нечего человека обманывать
Ответил preceptor
0
жду вашего решения
Ответил archery
0
та писала его пол часа а потом сайт гллюкнул и все затерлось((( влом опять набирать
Ответил preceptor
0
и как быть с неравным количеством монет на разных чашах весов?
Ответил preceptor
0
И совет, не набирайте большие программы на сайте, себе дороже выйдет :). Уже на набирался. Теперь только маленькие пишу здесь и то не всегда.
Ответил archery
0
?  - фальшивая
+  - настоящая
dif  - знание о весе фальшивой (больше или меньше)
vs  - взвешивание
=>  - итог взвешивания

1 откладываем

1) 7? vs 7?
if == => 14+ 7? goto 2)
if <> => 7+ 14? goto

2) 4? vs 4+
if == => 18+ 3? goto 3)
if <> => 10+ 4? goto

3) 2? vs 2+
if == => 20+ 1? goto 4)
if <> => 19+ 2? goto

4) 1? vs 1+
if == => фальшивая та что отложена вначале
if <> => нашли


Ответил archery
0
6) 2? vs 2? (dif) (№3)=> 19+ 2? goto 5)

7) 7? vs 7+ (№2)
if == => 14+ 7? dif(из предыдушего взвешивания) goto 8)
if <> => 14+ 7? dif goto 8)

8) 2? vs 2? (dif) (№3)
if == => 18+ 3? dif goto 9)
if <> => 19+ 2? dif goto 5)

9) 1? vs 1? (dif) (№4)
if == => нашли, это та что не взвешивалась из трех сомнительных
if <> => нашли
Ответил preceptor
0
Я не знаю почему, но я думал, что нет такого варианта, как поровну, вот и не нашел решения. Извиняюсь, был не прав.
Новые вопросы