Открыл технологию угадывания 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 секунд, уровень Экстрасенс).
Вот она -