|  | 
 
 发表于 2021-12-14 00:08:19
|
显示全部楼层 
| 复制代码import random
counts = int(input("请输入抛硬币的次数:"))
#利用 ignes 来判断是否打印每次的结果
if counts > 100:
    ignes = True
else:
    ignes = False
last = 0 #记录上一次,正反面的状态
hands = 0   #记录正面次数
tails = 0   #记录反面次数
c_hands = 0 #记录连续正面次数
c_tails = 0 #记录连续反面次数
max_hands = 0 #记录连续正面最多的次数
max_tails = 0 #记录连续反面最多的次数
i = 0
print("开始抛币实验.....")
while i < counts:
    num = random.randint(1,10)
    if num % 2:
        hands += 1
        c_hands += 1
        if not ignes:  # 如果为 True 就打印内容,则不打印
            print("正面",end = " ")
        if last == 2: #如果上一次的状态为 反面 ,就将连续正面状态设置为 1
            c_hands = 1
        if c_hands > max_hands: #判断连续正面 ,是否大于 max_hands 最大连续状态,是取而代之
            max_hands = c_hands
        #将上一次的状态设置为正面
        last = 1
    else:
        tails += 1
        c_tails += 1
        if not ignes:
            print("反面",end = " ")
        if last == 1:  #如果上一次的状态为 正面,就将连续反面状态设置为 1
            c_tails = 2
        if c_tails > max_tails: #判断连续反面状态,是否大于 max_tails 最大连续状态,是取而代之
            max_tails = c_tails
        #将上一次的状态设置为反面
        last == 2 
    i = i + 1
print("")
print("一共模拟了", counts ,"次抛硬币,结果如下:")
print("正面:",hands,"次",sep="")
print("反面:",tails,"次",sep="")
print("最多连续正面:",max_hands,"次",sep="")
print("最多连续反面:",max_tails,"次",sep="")
         
 | 
 |