jerry-_- 发表于 2021-12-14 09:20:39

基础Python16讲-抛硬币统计最多连续正面和反面问题

抛开代码不够简介的问题
想问我的有啥逻辑错误么?
为什么执行统计有错误呢
(尝试运行了几个,统计数据有错误)
import random
counts = int(input("请输入抛硬币次数:"))
print("开始抛硬币实验......")
heads = 0
tails = 0
c_heads = 0
c_tails = 0
max_heads = 0
max_tails = 0
last = 0

if counts < 100:
    i = 0
    while i < counts:
      num = random.randint(1,10)
      if num % 2 == 0:
            print("正面",end=" ")
            heads += 1
            c_heads += 1
            if last == 2:
                c_heads = 1
            if c_heads > max_heads:
                max_heads = c_heads
            last = 1
      else:
            print("反面",end=" ")
            tails += 1
            c_tails += 1
            if last == 1:
                c_tails = 1
            if c_tails > max_tails:
                max_tails = c_tails
            last = 2   
      i += 1
else:
    i = 0
    while i < counts:
      num = random.randint(1,10)
      if num % 2 == 0:
            heads += 1
            c_heads += 1
            if last == 2:
                c_heads = 1
            if c_heads > max_heads:
                max_heads = c_heads
            last = 1
      else:
            tails += 1
            c_tails += 1
            if last == 1:
                c_tails = 1
            if c_tails > max_tails:
                max_tails = c_tails
            last = 2   
            
print("\n一共模拟了 ",counts,"次抛硬币,结果如下:")
print("正面",heads)
print("反面",tails)
print("最大连续正面:",c_heads)
print("最大连续反面:",c_tails)

冬雪雪冬 发表于 2021-12-14 10:09:37

最后两行
print("最大连续正面:",c_heads)
print("最大连续反面:",c_tails)
改为
print("最大连续正面:",max_heads)
print("最大连续反面:",max_tails)

jerry-_- 发表于 2021-12-14 10:16:37

冬雪雪冬 发表于 2021-12-14 10:09
最后两行
print("最大连续正面:",c_heads)
print("最大连续反面:",c_tails)


哈哈哈哈哈哈哈哈
谢谢
我是白痴吗
页: [1]
查看完整版本: 基础Python16讲-抛硬币统计最多连续正面和反面问题