Форум » Теория игр » Задача № 3487, задание 19 » Ответить

Задача № 3487, задание 19

BLINK.NAY: (№ 3487) (А. Кабанов) Два игрока, Петя и Ваня, играют в следующую игру. Перед игроками лежит две кучи камней. Игроки ходят по очереди, первый ход делает Петя. За один ход игрок может добавить в любую кучу один камень или увеличить количество камней в первой куче в два раза или увеличить количество камней во второй куче в три раза. Игра завершается в тот момент, когда общее количество камней в двух кучах становится не менее 30. В начальный момент в первой куче было K камней, а во второй – S камней, K+S ≤ 29. Ответьте на следующие вопросы: Вопрос 1. Сколько существует пар (K; S), таких что Ваня выигрывает первым ходом при любой игре Пети? Выходит ответ 5, хотя на сайте ответ 7. Объясните, пожалуйста, в чем проблема. Использую программу: [pre2] o=0 p=0 def f(x, y): if (x+1)+y<=29 and (x)+(y+1)<=29 and (x*2)+(y)<=29 and (x)+(y*3)<=29: if (x+1)>y: if y*3<(x+1)*2: return (x+1)*2+y else: if y*3<(x+1)*2: return (x+1)*2+y else: return (x+1)+y*3 def g(x, y): if (x+1)+y<=29 and (x)+(y+1)<=29 and (x*2)+(y)<=29 and (x)+(y*3)<=29: if (y+1)>(x): if (y+1)*3>(x)*2: return (x)+(y+1)*3 else: if (y+1)*3>(x)*2: return (x)+(y+1)*3 else: return (x)*2+(y+1) for q in range(1, 30): for w in range (1, 30): e= f(q, w) p= g(q, w) if f(q,w): if e>=30 and p>=30: o+=1 print(q, w, f(q,w), g(q, w)) [/pre2]

Ответов - 4

глебарзамас: Мне кажется, проще решать анализом в Excel. Не получается загрузить файл с решением. 7 наборов у этой замечательной по постановке задачи, могу перечислить.

глебарзамас: по вопросу - вот есть подходящие наборы (2,9) (5,8) (14,1), набор 14,1 программа не определяет

BLINK.NAY: Да, перечисли все, потому что те, что ты назвал программа находит 2 9 5 8 12 5 13 3 14 1 Но какие еще 2?


глебарзамас: У меня excel выдает 14,1 13,3 12,5 11,6 8,7 5,8 2,9



полная версия страницы