Моя стратегия
Открыл технологию угадывания 4-значного числа! Абсолютная безотказность. Количество необходимых попыток -
5-
6, ну в случае фатального невезения может потребоваться 7.
Такая технология, правда, требует от Вас хорошей сообразительности и достаточно большого промежутка времени для отгадывания чисел (у меня уходило от
70 до
160 секунд). Если для Вас это - пустяки, можете смело прибегать к этой технологии)
Принцип такой.
Первые 4 попытки пишем следующие числа:
1234
4567
3480
6043
И смотрим на результаты.
В частности нас интересует
СУММА всех быков и коров за эти 4 попытки.
Вы спросите в чем дело, почему именно эти числа? Можно и другие, на самом деле, но обязательно условие такое:
ОДНА цифра должна повторяться
ЧЕТЫРЕ раза (в данном случае это
4) и желательно стоять во всех числах на разных позициях;
ОДНА цифра -
ТРИ раза (в данном случае это
3);
ДВЕ цифры - по
ДВА раза (
6 и
0);
и ОДНА цифра -
отсутствовать вовсе (
9).
При этом пять цифр будут повторяться по одному разу - это
1, 2, 5, 7 и
8.
Еще одна особенность: в числе
6043, которое мы ввели 4-ой попыткой, присутствуют
все цифры, которые повторяются в данной комбинации более чем один раз (это
4, 3, 6 и
0) - и
ТОЛЬКО они. Это сыграет также важную роль. Зачем это надо - потом скажу.
Итак, теперь считаем сумму полученных быков и коров. Их может быть от 3 до 11. Это нам надо для того, чтобы определить, какие из повторяющихся цифр встречаются в загаданном числе.
Например, если в итоге получилось
3 быка и коровы - ясное дело, что загаданное число содержит три цифры, которые повторяются в комбинации один раз, и цифру, которая отсутствует. Другого варианта быть не может.
Для тех, кто хочет сэкономить время, приводу шпаргалку:
Сумма БК/Повторения
3 = 1110
4 = 2110 или 1111.
5 = 3110/2210/2111
6 = 4110/3210/3111/2211
7 = 4210/4111/3220/3211
8 = 4310/4220/4211/3221
9 = 4320/4311/4221
10 = 4321
11 = 4322
Если сумма равна от 4 до 9, то вариантов, как вы видите, несколько.
В этом случае на помощь приходит число 6043 (то самое, где встречаются только повторяющиеся цифры).
Смотрим сумму быков и коров именно у него.
Например, если общая сумма равна
7, а у четвертой попытки только один бык, то ясное дело - иначе как
4111 вариантов быть не может.
Вот например:
1234 - 1б, 1к
4567 - 1б, 1к
3480 - 0б, 2к
6043 - 1б, 0к.
Подставляем и получаем следующее:
Цифра
4 -
ТОЧНО есть, причем стоит она на 3-ей позиции.
Цифр
3, 6, 9, 0 -
ТОЧНО нет.
Подставляем результаты в третью попытку: Цифра
8 -
точно есть.
И еще есть одна из цифр
12, и одна из цифр
57. Обе - стоят на своих позициях (так как в обоих случаях 4 - это корова).
Возможные варианты:
1847,
1548,
8247.
Более точно мы определить число пока не можем, но заметьте - уже свели количество возможных вариантов к
трем (при том что всего их ни много ни мало
4536, при условии что число не начинается с нуля). Вероятность того, что мы угадаем с 5-ой попытки, равна 33%. Вопрос -
что вводить 5-ой попыткой?
Посмотрим варианты.
Если мы введем
1847, то:
Если загадано число
1548, результат будет -
2 быка 1 корова.
Если загадано число
8247, результат будет -
2 быка 1 корова.
Вывод: число
1847 вводить не стоит, если только Ваши экстрасенсорные способности не подсказывают Вам, что загадано именно оно.
Если мы введем
1548, то:
Если загадано
1847, результат будет -
2 быка 1 корова.
Если загадано
8247, результат будет -
1 бык 1 корова.
Уже лучше! Делаем пятую попытку. С вероятностью 33% - она оказывается удачной, если же нет - то шестая попытка уже точно будет последней. =)))
Если жа и после такой проверки вариантов все равно осталось несколько (например, общая сумма = 8, сумма у 4-го числа = 2, варианты - 4310 и 4211) тогда уже анализируйте дальше, исходя из кол-ва быков и коров на каждой попытке.
Еще один пример:
1234 - 1б, 1к
4567 - 0б, 2к
3480 - 2б, 0к
6043 - 0б, 2к
Сумма =
8. 8 = 4310/4220/4211/3221.
После проверки 4-ой попыткой возможные варианты:
4211, 4310.
Проверим сначала
4310. Может быть такое? Может. Это означает, что цифры
3 и
4 - есть,
6 и
0 - нет,
9 - есть. Все подходит.
Теперь определим местоположение. Третья попытка - два быка, и кроме как
3 и
4 вариантов быть не может.
СТО-о-оп! А где же тогда бык в первой попытке? Согласно ей, цифр
1 и
2 быть не может, а
3 и
4 уже заняты...
Не получается!
ЗНАЧИТ -
3 все-таки нет, а единственный вариант оставшийся -
4211.
То есть:
4 есть, также есть
6 или
0,
9 нет.
3 - тоже нет.
Если предположить, что есть
4 и
6, тогда есть еще
8, а также
1 или
2.
Если же предположить, что есть
4 и
0, то есть еще
5/7 или
1/2.
Еще один момент: В первой попытке остался неиспользованным один бык. Причем это точно цифра
1, так как на второй позиции стоит цифра
4 (согласно 3-ей попытке), а цифры
3 вообще нет.
Итак, первые две цифры числа
14.
Варианты:
1450, 1470, 1486.
И опять с вероятностью 33% мы угадываем с пятой попытки, с вероятностью 67% - с шестой.
Конечно, значительную роль в игре играют быки. В третьей попытке получилось два быка - и в итоге мы сэкономили один ход. Но на самом деле бывает так, что мне удалось выиграть с пятой попытки (и даже без угадывания в конце!!!) имея лишь одного быка.
Например:
1234 - 0б, 2к
4567 - 1б, 0к
3480 - 0б, 3к
6043 - 0б, 3к.
Сумма =
9.
9 = 4320/4311/4221.
6043 = 3 коровы
Остаются варианты
4320 и
4221.
Пробуем оба этих варианта. Согласно первому:
Есть цифры
4, 3 и
9, также есть
6 или
0.
Или:
Есть
4, 6 и
0, а также еще одна цифра из неповторяющихся -
1, 2, 5, 7 или
8.
Какая? Смотрим по быкам. И натыкаемся на несоответствие - во второй попытке
4567 имеем только одного быка, а согласно этому варианту есть
4 и
6.
Не подходит.
Следовательно, подходит только первый вариант, причем как мы только что выяснили, цифры
6 нет, значит есть
3, 4, 9 и
0.
Теперь вычислим местоположение этих цифр.
4 - единственный бык во второй попытке, значит, она на первой позиции.
Цифра
3 может находиться только на 2-ой позиции, так как она была использована в первой и в четвертой попытке на 3-ей и 4-ой позиции, и нигде нет ни одного быка. Значит, у нас два варианта:
4390 и
4309.
4390 - быть не может, так как в третьей попытке у нас тоже нет быков. Остается единственный ваариант -
4309, который мы и вводим 5-ой попыткой и выигрываем!
Но могут изредка возникать ситуации, когда четырех попыток маловато, чтобы свести дальнейший процесс к тупо угадыванию.
1234 - 0б, 1к
4567 - 1б, 0к
3480 - 0б, 1к
6043 - 0б, 1к.
Итого -
4 в сумме.
4 = 2110 или 1111.
На 4-ой попытке - одна корова. Это означает, что вариант
1111 нам не подходит - только
2110.
Из этого делаем вывод следующий:
9 - есть
Есть также
6 или
0
Есть также
1 или
2 (исходя из первого числа)
И еще одна цифра. Это может быть
5 или
7, но если есть одна из этих цифр, значит
6 нет, а есть
0. Или же если есть
6, то есть
8 обязательно.
Проще говоря, варианты цифр:
1/2 - 6 - 8 - 9, или
1/2 - 5/7 - 9 - 0.
О местоположении цифр догадываться мы пока не можем - маловато быков.
Возможных вариантов пока много. Делаем пятую попытку. Лучше первым проверять тот вариант, где меньше точно известных цифр. Пусть это будет число
2907.
Получилось:
1 бык, 1 корова.
Что это означает?
1: Цифры
9 и
0 - верны, а
2 и
7 надо заменить на
1 и
5.
2: Вариант неверен, и совпали цифры
2 и
9, а оставшиеся две -
6 и
8.
То есть набор цифр получается следующий: либо
1-5-9-0, либо
2-6-8-9.
Рассмотрим сначала первый вариант. Мы имеем следующее:
5 может быть только на второй позиции;
0 - не на четвертой, значит на третьей позиции (в начале числа он не может стоять). Это и есть бык;
1 - не на первой позиции.
Единственный вариант -
9501. Пока не спешим его вводить...
Теперь второй вариант - с набором
2-6-8-9:
6 - на третьей позиции;
2 - не на второй позиции.
Варианты:
2869, 2968, 8962, 9862
Варианты
2968 и
9862 - не подходят, так как в первом случае получается 2 быка, а во втором - ни одного.
Остается три варианта:
9501, 2869, 8962. Тут уже - только вопрос везения. Мне не повезло, я ввел 8962 и получил 1 корову и только) оказалось как раз 9501((( получилось 7 попыток.
Конечно, выглядит сложно на первый раз. Но нужно просто попрактиковаться, и все будет хорошо). А главное - это
РАБОТАЕТ!
Реально, я только что 40 раз сыграл с компьютером, в 52,5% случаев (21 из 40) угадал с 5 попыток, в 42,5% (17 из 40) - с 6-ти, и лишь дважды (5%) мне не повезло и пришлось использовать седьмую.
Хотя бывают, конечно, и исключительные случаи. С вероятностью
1 к 1134 компьютер может загадать одно из чисел
1234, 4567, 3480, 6043. Однажды он загадал число
4576, которое я благополучно угадал с трех попыток) А может оказаться так, что после ввода, к примеру,
3480 Вы получите
0 быков 0 коров, что делает почти бессмысленным ввод числа
6043. Но факт есть факт - при использовании этой стратегии вероятность отгадывания с 4 попыток равна 0.09%
не более чем с 5 попыток = около 50%
не более чем с 6 попыток = около 90%
не более чем с 7 попыток = 100%!
Может быть конечно я и ошибаюсь, но на мой взгляд - это самая оптимальная стратегия отгадывания четырехзначного числа. В настоящее время я еще думаю над стратегией отгадывания 5-значных, 6-значных и даже 9-значных чисел. Как додумаюсь - поделюсь, если конечно это будет интересно.
В завершении даю ссылку на мою версию программы, которую я написал за 1,5 часа на Delphi 7. Ее особенность - возможность отгадывать числа как четырехзначые, так и других разрядностей, а также возможность проходить Чемпионаты, т.е. последовательность раундов с отгадыванием чисел разных разрядностей с ограничением по кол-ву попыток и времени (мой рекорд по прохождению чемпионата на 8 раундов - 58 попыток и 590 секунд, уровень Экстрасенс).
Вот она -
http://depositfiles.com/files/ma1i1gsiw
УДАЧИ!!!