qwb1997 发表于 2022-1-25 11:34:56

{:10_254:}

下饭的诺星战神 发表于 2022-1-25 14:26:47

{:10_335:}

liaoting020 发表于 2022-1-25 14:36:06

回复回复

distok 发表于 2022-1-25 20:26:30

123132312

Passepartout 发表于 2022-1-26 08:41:15

{:10_277:}

WindyJane 发表于 2022-1-27 08:41:36

本帖最后由 WindyJane 于 2022-1-27 09:04 编辑

知道啥原因吗?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
但最后还得满足要求商是偶数 保证次序,然后就你输了~

Hyjxsssss 发表于 2022-5-14 22:08:35

# 题干
# 假设有 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}张牌!')

憨憨学py 发表于 2022-8-9 16:18:36

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]
查看完整版本: 27 - 必赢的游戏