- 抛硬币v1.0
# 导入随机模块 #
import random# 接收用户输入并将数值赋值给 counts 变量 #
counts = int(input("请输入实验次数:"))
i = 0print("开始抛硬币实验:")
while i < counts:# 生成一个随机数num #num = random.randint(1,100)if num % 2:# 打印结果 #print("反面")else:# 打印结果 #print("正面")i = i + 1
- 抛硬币v2.0
import random
counts = int(input("请输入抛硬币的次数:"))
# 利用 ignore 变量来判断是否打印每次的结果
if counts > 100:ignore = True
else:ignore = False
heads = 0 # 统计正面的次数
tails = 0 # 统计反面的次数
i = 0
print("开始抛硬币实验……")
while i < counts:num = random.randint(1, 10)if num % 2:heads += 1if not ignore:print("正面", end=" ")else:tails += 1if not ignore:print("反面", end=" ")i += 1
print("")
print("一共模拟了", counts, "次抛硬币,结果如下:")
print("正面:", heads, "次", sep="")
print("反面:", tails, "次", sep="")
- 抛硬币v3.0
import randomcounts = int(input("请输入抛硬币的次数:"))# 利用 ignore 变量来判断是否打印每次的结果
if counts > 100:ignore = True
else:ignore = Falseheads = 0 # 统计正面的次数
tails = 0 # 统计反面的次数last = 0 # 记录上一次的状态,如果是正面设置为1, 反面则设置为2
c_heads = 0 # 统计连续正面的次数
c_tails = 0 # 统计连续反面的次数
max_heads = 0 # 统计连续正面的最多次数
max_tails = 0 # 统计连续反面的最多次数i = 0
print("开始抛硬币实验……")
while i < counts:num = random.randint(1, 10)if num % 2:heads += 1c_heads += 1if not ignore: print("正面", end=" ")# 如果上一次是反面:将连续正面的次数设置为1if last == 2:c_heads = 1# 判断连续正面的次数是否比max_heads大,如果是,取而代之if c_heads > max_heads:max_heads = c_heads# 将上一次的状态设置为正面last = 1else:tails += 1c_tails += 1if not ignore:print("反面", end=" ")# 如果上一次是正面:连续反面的次数设置为1if last == 1:c_tails = 1# 判断连续反面的次数是否比max_tails大,如果是,取而代之if c_tails > max_tails:max_tails = c_tails# 将上一次的状态设置为反面last = 2i += 1print("")
print("一共模拟了", counts, "次抛硬币,结果如下:")
print("正面:", heads, "次", sep="")
print("反面:", tails, "次", sep="")
print("最多连续正面:", max_heads, "次", sep="")
print("最多连续反面:", max_tails, "次", sep="")