网站后台怎么上传文章,wordpress4.7.4漏洞,建设眼镜网站风格,网站建设程序招聘一、问题描述
小 A 和小 B 两个人在海边找到了 n 个石子#xff0c;准备开始进行一些游戏#xff0c;具体规则如下#xff1a;小 B 首先将 n 个石子分成若干堆#xff0c;接下来从小 A 开始小 A 和小 B 轮流取石子#xff0c;每次可以任选一堆石子取走任意个#xff0c;…一、问题描述
小 A 和小 B 两个人在海边找到了 n 个石子准备开始进行一些游戏具体规则如下小 B 首先将 n 个石子分成若干堆接下来从小 A 开始小 A 和小 B 轮流取石子每次可以任选一堆石子取走任意个不可不取没石子可取的输。问在最优策略的情况下小 A 和小 B 到底谁能赢得游戏。 输入格式
一行一个整数 n表示石子个数。
输出格式
一行一个字符 A 或者 B输出 A 表示小 A 能赢得游戏输出 B 表示小 B 能赢得游戏。
样例输入
2样例输出
B说明
对于 22 个石子小 B 将其分成两堆每堆 11 个石子即可获胜。
二、解析
首先这个问题是一个经典的博弈问题属于Nim游戏的一个变种。在这个游戏中小A和小B轮流从若干堆石子中取走任意个石子每次至少取一个不能取石子的人输。
在这个特定的游戏规则下石子堆的总数即n决定了游戏的胜负。对于小A来说如果石子堆的总数是偶数他无法确保自己总是能做出最优的选择因为小B可以模仿小A的动作保证每次轮到小A取石子时石子堆的总数仍然是偶数。这样最终当小B取完最后一堆石子后小A将无石子可取从而输掉游戏。
相反如果石子堆的总数是奇数小A可以采取一个策略确保自己总能赢得游戏。他的策略是每次小B取完石子后他都取走一个石子使得剩下的石子堆总数仍然是奇数。这样无论小B如何取石子小A总能保持石子堆的总数为奇数直到最后小A取走最后一个石子赢得游戏。
因此这个游戏的胜负完全取决于石子堆的总数n是否为偶数。如果n是偶数小B将赢得游戏如果n是奇数小A将赢得游戏。
三、python代码
import os
import sys# 请在此输入您的代码
if int(input())%20:print(B)
else:print(A)
四、运行结果