Ваш оппонент загадывает два любых разных целых числа и бросает монету в тайне от вас. Если выпадает орёл, оппонент называет вам большее число, если решка, то меньшее. Вы пытаетесь угадать, является ли названное число большим или меньшим. Если вы просто начнёте подбрасывать монету, вероятность угадать правильно будет 0.5.
Можно ли, и если да, то как, увеличить шанс правильного угадывания? Метод должен работать для любых входных данных. Другими словами, оппонент будет знать вашу стратегию и сможет подобрать «плохие» числа.
Идеи?
* * *
За задачу спасибо Ярику. Было весело.
UPD. Решение.
Оппонент лишь единожды подбрасывает монету и называет большую либо меньшую? Ответ надо дать на основании единственного ответа?
Да.
Я так понимаю, хитрость должна быть в том, что мы работаем с целыми числами?
Гарантированно работающих идей у меня нет. Поясню:
Предположим, оппонент использует генератор истинно случайных чисел с равномерным распределением на очень большом интервале для выбора первого числа X, а второе число выбирает как X+1. В таком случае наше угадывание практически будет равносильно угадыванию, выпал ли орёл или решка у монеты, а тут дальше 0.5 не уйдёшь.
В общем случае можно на основании повторения опытов пытаться угадывать распределение, используемое оппонентом для выбора чисел, и на его основании вычислять вероятность того, что выпало два числа <= названного оппонентом. На практике при взаимодействии Machine Machine это может и сработать.
Да, для X и X+1 шансы очень малы, но условие и не приводит конкретных чисел.
Повторения у нас нет. Условие говорит только об одном опыте, и вы должны в этом опыте угадать с вероятностью >0.5.