Нет, нам нужно всего лишь уметь вычислять очередной ход.
В общем случае знание о предпочтениях противника в отношении будущих ходов тоже важно. Но в данной задаче, как я понимаю, мы исходим из того, что знанием стратегии противника не располагаем, так что да.
А существует ли вообще хоть какое-то множество двоичных последовательностей, принадлежность к которому разрешима (в том смысле, что есть
, который по программе
, задающей двоичную последовательность, говорит, задает ли эта программа элемент множества или нет), не являющееся объединением конечномерных цилиндров (множеств вида "сначала вот такой префикс, потом что угодно")?
Насколько я понимаю, нет. Даже если множество состоит из одного нуля, принадлежность произвольного вычислимого числа к этому множеству неразрешима.
Пусть у нас есть функция
, которая по алгоритму, выдающему двоичную последовательность, говорит, кто выиграл. Стратегия первого игрока - это функция из битовых строк четной длины в биты, стратегия второго игрока - функия из нечетных строк тоже в биты. Пусть
- алгоритм, выдающий битовую строку, получающуюся игрой этих двух стратегий друг против друга. Тогда у первого игрока есть выигрышная стратегия, если
.
Как неконстуктивная постановка задачи годится. Но вообще говоря
именно как алгоритм не существует. Возьмём в качестве примера стратегии
такую функцию: Пронумеруем все машины Тьюринга, стартующие с нулевой ленты. Пусть
выдает единицу, если машина Тьюринга с номером, соответствующим номеру шага, останавливается и нуль в ином случае. Алгоритма, вычисляющего всю полученную в результате битовую строку, заведомо не существует.