Обновить
0

Пользователь

Отправить сообщение

Опустим моменты с вечно несходящимися цифрами (например 0,01% при 1000 запусков: до 10 попытки добралалась одна десятая одного запуска?) и на то, что текст выглядит крайне похожим на нейронку (опять, может быть что угодно, может человек так пишет).

Но давайте остановимся на самом простом: расширим задачу до поиска среди всех 100 000 вариантов (а не миллиона, как кто-то нашептал автору, потерявшему какой-либо символ степени в моменте с 10^6). Вопрос простой: можно ли найти требуемый адрес и если можно то как?

Ответ на первый вопрос: да. Ответ на второй вопрос дал сам автор (правда не до конца и сам этого не понял).

В чем суть метода? Мы делим для каждого из 100 000 адресов оставшиеся по группам с количеством совпадений частей равным 0, 1, 2, 3 и 4. Тогда берем для начала абсолютно случайный адрес (можно брать каждый раз даже первый адрес из доступных). Пусть нам система вернула 0, в таком случае у нас останется 9^5=59049 вариантов неподходящих ответов. Соответвенно следующий адрес берем из этих вариантов, сохраняя список всех возможных адресов отдельно.

На следующем ходу мы опять взяв любой адрес из оставшихся доступных сокращаем список (оставляем только элементы, встречающиеся в обоих списках, а также убираем текущий адрес, если он случайно попал в этот список). Тогда к десятому ходу у нас в худшем случае останется лишь один адрес (худший случай - ни разу не угадали ни одной компоненты => для каждой из пяти компонент были использованы 9 вариантов из 10 => остается только один вариант суммарного адреса).

Это звучит похоже на "Шаг 5" у автора за тем исключением, что в данном варианте уменьшение списка происходит всегда, а не

начиная примерно с 3-й или 4-й попытки, когда накопилось хоть немного информации

Одна эта фраза напрочь убивает решение автора при поиске загаданного адреса среди всех (случайное повторение одного и того же значения, которое не входит в загаданный адрес).

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
C#