Мне задавали эти вопросы в одном из моих интервью. Вопросы следующие:Игра с переворотом двух последовательных положительных результатов на негативы
У вас есть строка '+' и '-' (например, ++ ---- ++++++ - + - +). Есть два игрока: Игрок 1 и Игрок 2. При каждом повороте один из игроков может выбрать любые два последовательных '+' i.e. ++ и перевернуть их в. Итак, если исходная строка - ++ ---- ++++++ - + - +, а затем у игрока есть следующие 6 вариантов (2 - 7). (Первый для справки).
- ++ ---- ++++++ - ++
- ------ ++++++ - ++
- ++ - ---- ++++ - + - +
- ++ ---- + - +++ - + - +
- ++ ---- ++ - ++ - + - +
- ++ ---- ++++ - ++
- ++ ---- ++++ --- ++
игрок происходит поочередно. Игрок, который играет последний ход, победит (или проиграет - не имеет значения).
Учитывая начальную строку, и если игрок 1 принимает первый ход, мы должны сказать, кто победит?
Теперь это похоже на классическую проблему теории игр, где каждый игрок пытается играть оптимально и на каждом шаге играет ход, который перемещает его в выигрышную позицию.
Любые идеи о том, как я могу подойти к этому, чтобы решить?
PS - Заинтересованы в подходе, чем в решении. Я прочитал http://www.codechef.com/wiki/tutorial-game-theory, но не смог применить эту же логику здесь.
Можете ли вы объяснить, почему мы выбираем наименьшее неотрицательное целое среди них? –