知道啥原因吗?5是超过4的最小公质数(保证余数在1-4 之内) ,且21/5商为偶数, 10赌9骗 ,小师妹别骗人了, 骗骗我吧~
补充一哈,这边所谓的最小公质数 是宏观上的, 啥意思呢?
正常来说2 为最小公质数,所以要求1+1 =2
这边的一加一则是看成我抽一次和小师妹抽一次
因为抽数是一个范围1-4所以1是宏观的 当然2也是宏观的.
两个人抽出牌数也是范围2-8
但是最小公质数是确定的 1必须经过+1 才能能到2 最小公质数
所以2的范围在1 之上
1的范围是1-4
那么2则必须是在5-7 之间
由最小又可确定此数是5
但最后还得满足要求商是偶数 保证次序,然后就你输了~
# 题干
# 假设有 21 张牌,每次每人只可取走 1~4 张,不能多拿,也不能不拿,谁拿到最后一张牌谁谁就输了。
total = 21
aim = 5
count = 0
print(f'---此时还有{total}张牌---')
while True:
while count < 4:
number = int(input('人要取几张牌:'))
if number >= aim or number < 1:
print(f'违规!不能取{number}张!!!')
else:
count += 1
target = aim - number
last = total - aim * count
print(f'计算机取{target}张牌')
print(f'---此时还有{last}张牌---')
else:
number = int(input('人要取几张牌:'))
if number == last:
print('计算机赢啦,游戏结束!')
break
else:
print(f'违规,仅余1张牌,不能取{number}张牌!') if __name__ == "__main__":
card = 21
print("===你休想战胜我,我是无敌计算机!不信就试试阿===")
print("好戏开始了!")
while True:
print(f"---此时还有{card}张牌---")
human = int(input("请输入要取走的牌数(1~4张):"))
if human < 1 or human > 4 or human > card:
print(f"违规咯!不能取{human}张!!")
continue
card = card - human
if card == 0:
print("计算机赢咯,游戏结束")
break
computer = 5 - human
print(f"计算机取走{computer}张")
card = card - computer
if card == 0:
print("人类永远不可能获胜,这句无法执行!")
break
页:
1
[2]