Примерно неделю назад по фейсбуку вирусом прошлась онлайн-игра "Взломай телефон" - сделанная изданием Медуза стилизация игры "Быки и коровы". Я не играл в нее лет двадцать минимум, и тут зацепила. Правила простые - компьютер загадывает четырехзначный код без повторяющихся цифр (якобы пин-код телефона). Вы можете давать свои варианты, и компьютер каждый раз отвечает, сколько цифр из загаданного цифра присутствуют в вашем варианте, но не своих местах ("Медуза" обозначает такие пачкой цифирок 123), а сколько - на своих (их число - помечено прямоугольничком).
В этом примере угадано две цифры - одна уже стоит на своем месте, другая - не на своем.
Некоторые друзья в фб утверждали, что правильная стратегия позволяет угадывать в среднем за четыре попытки. Я не знаю как. У меня получается раз за шесть-семь, в зависимости от удачи. Моя стратегия - ниже, но попробуйте сначала поиграть самостоятельно, а потом сравним стратегии. Вот картинка игры, где следующим ходом я нахожу ответ просто потому что повезло.
Какая логика?
- Я сначала прогоняю наборы 1234 и 5678 - в результате я точно знаю, сколько цифр в первой группе, сколько во второй, и сколько осталось на 0 и 9 - в данном случае получается, что в коде есть обе. Повезло.
- В 5678 одна на своем месте - оставлю одну из них, остальное заполню 0, 9, и случайной цифрой из набора 1234.
- Только две угаданы. Но мы знаем, что и ноль и девять присутствуют. Значит, в коде точно нет пятерки и тройки. Зато либо ноль, либо девятка уже на своем месте. Оставим одну из них, подвинем вторую. Попробуем теперь другую цифру из набора 5678 в той же позиции. Если мы оставим на месте девятку, значит это не может быть одновременно семерка. И мы уже знаем, что это не пять. Попробуем шестерку Ноль можно поставить первой или последней - неважно. Допустим, первой. Остается последняя позиция - туда не подходит четверка (а то уже была бы на своем месте в первой попытке), и мы уже отбросили тройку. Значит, либо единица, либо двойка. Пробуем случайно двойку.
- ОК, теперь две угаданы. Мы точно знаем, что это ноль и девятка, и они на своих местах. Код 0X9X Теперь мы знаем, что в коде нет не только 35, но и 26. Из первой группы остаются 14, причем четверка может быть только во второй позиции, а то уже была бы на своем месте раньше. Единица может быть и во второй, и в четвертой. Из второй группы остались 78. И они уже были на своих местах. Но это не может быть семерка - ее место занято девяткой. Значит, это восьмерка в четвертой позиции - 0X98. Осталось решить со второй позицией. Там может быть и единица, и четверка. Либо 0198, либо 0498.
- Повезло!
Вот еще типичная ситуация - встретилась в нескольких партиях. В коде уже было три верных цифры - одну заменили, но теперь присутствуют только две. Значит, выброшенная точно есть. В этом примере это случилось дважды, и теперь ответ однозначен. Это вам задание, знаете, какой?
Интересная головоломка, но чтоб отгадать код за 4 попытки, должно реально повезти с комбинацией. А если будет по 1-2 цифры из каждого набора (1234-5678-09), еще и не на своих местах, то за 4 ну никак.