Играют Двое. Первый участник игры называет произвольное целое число , не превышающее...

0 голосов
160 просмотров

Играют Двое. Первый участник игры называет произвольное целое число , не превышающее десяти. Второй игрок прибавляет к названному числу своё целое число , тоже не превышающее десяти , и сообщает полученную сумму. К этой сумме первый игрок также прибавляет произвольное целое число , не превышающее десяти , и сообщает новую сумму . К новой сумме второй прибавляет число и т.д. до тех пор , пока окончательной суммой не окажется число 100.. Выигрывает тот, кто первый достигает 100. Как должен действовать первый игрок, чтобы выйграть ?


Информатика (15 баллов) | 160 просмотров
Дан 1 ответ
0 голосов
Правильный ответ
Одна из простейших игр со стратегией, разновидность игры "Ним".
Игра под названием "Кто первый скажет "Сто"?"
Чтобы первым достичь 100, надо заставить противника при его последнем ходе назвать число 90 до 99 - прибавив к этому числу от 10 до 1, мы выигрываем. Следовательно, при своем предпоследнем ходе, мы должны назвать число 89=100-(10+1). Перед этим надо назвать числа 89-11=78, 67, 56, 45, 34, 23, 12, 1.
Начальное число 1 можно найти сразу как остаток от целочисленного деления 100 на 11. А далее делать шаги по указанным цифрам. Для этого, если противник прибавляет некое m, надо прибавлять 11-m. Или, ничего не считая, называть числа 1, 11+1=12, 12+11=32, .. 87 и 100.

В общем виде, если требуется первым назвать число N, используя числа от 1 до m, начальное число определяем, как остаток деления N на (m+1). А далее, когда противник прибавляет некое k, мы прибавляем m+1-k.
(142k баллов)