NEW
Font size
WorksheetsТеория игр
Total questions: 10
Worksheet time: 5mins
В задаче сказано: «Игра завершается, когда в куче не менее 51 камня». Какой код на Python правильно проверяет это условие?
if s > 51:
if s <= 51:
if s >= 51:
if s < 51:
В игре из одной кучи можно делать ходы: +1 или ×2. Начало: 5 камней. Цель: первым получить не менее 13 камней. Кто выиграет при правильной игре?
Нельзя определить
Петя (первый игрок)
Ваня (второй игрок)
Ничья
def f(s, p):
if s >= 51:
return p % 2 == 0
if p == 0:
return ...
Что должно быть вместо ...?
return 1
return 0
return p
return p-1
В условии задачи сказано: «уменьшить количество камней в куче в 3 раза (округление в меньшую сторону)». Число камней: 10. Что получится после такого хода?
4
3.333
10/3
3
В игре с двумя кучами: можно брать 3 камня из одной кучи или делить кучу на 2 (округление вверх). Позиция (10, 15). Какой ход невозможен?
(7;15)
(10;12)
(10;8)
(10;7)
В Excel для округления вниз используется функция:
ОКРУГЛВНИЗ()
ОКРУГЛ()
ЦЕЛОЕ()
ОКРУГЛВВЕРХ()
В игре с двумя кучами для победы суммарно камней должно стать не менее 60. Стартовая позиция: (15, 20). Какой ход ведёт к победе?
(37, 20)
(25, 25)
(18, 43)
(15, 32)
Частая ошибка в рекурсивной функции для игры: забывают базовый случай if p == 0. Что произойдёт без него?
Бесконечная рекурсия
Функция всегда вернёт True
Ничего не изменится
Функция всегда вернёт False
В коде для задачи используют список возможных ходов. Какой из вариантов правильный для ходов «добавить 1, добавить 3, умножить на 2»?
[f(s-1, p-1), f(s-3, p-1), f(s/2, p-1)]
[f(s+1, p+1), f(s+3, p+1), f(s*2, p+1)]
[f(s+1, p), f(s+3, p), f(s*2, p)]
[f(s+1, p-1), f(s+3, p-1), f(s*2, p-1)]
В рекурсивной функции f(s, p) параметр p обычно означает:
Номер игрока
Количество оставшихся ходов
Номер текущего хода
К
