Форум » Теория игр » Теория игр 4830 » Ответить

Теория игр 4830

kirill12412: решал задачу программой, для 19 ответ сошелся, а вот для 20-21 выводит неверный ответ, я не могу понять, где ошибка в программе. Для 20 выводит ответы 18 19, а для 21 выводит 17. Моя программа: [pre2] # 19 def f1(x,h): if h==2 and x>=62: return 1 if h<2 and x>=62 or h==2 and x<62 or h>2: return 0 else: if h%2==1: return f1(x+1,h+1) or f1(x+2,h+1) or f1(x*3,h+1) else: return f1(x+1,h+1) and f1(x+2,h+1) and f1(x*3,h+1) for x in range(1,62): if f1(x,0)==1: print(x) # 20 def f2(x,h): if h==3 and x>=62: return 1 if h<3 and x>=62 or h==3 and x<62 or h>3: return 0 else: if h%2==0: return f2(x+1,h+1) or f2(x+2,h+1) or f2(x*3,h+1) else: return f2(x+1,h+1) and f2(x+2,h+1) and f2(x*3,h+1) for x in range(1,62): if f2(x,0)==1: print(x) # 21 def f3(x,h): if (h==2 or h==4) and x>=62: return 1 if h%2!=0 and x>=62 or h>4: return 0 else: if h%2==1: return f3(x+1,h+1) or f3(x+2,h+1) or f3(x*3,h+1) else: return f3(x+1,h+1) and f3(x+2,h+1) and f3(x*3,h+1) for x in range(1,62): if f3(x,0)==1: print(x) break [/pre2]

Ответов - 1

Aleksey6819: kirill12412 пишет: я не могу понять, где ошибка в программе В задании написано: При этом нельзя повторять ход, который только что сделал второй игрок. У Вас в программе нет обработки этого условия.



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