Python模拟赌徒破产问题:求100次试验的最大/最小掷币次数
赌徒破产问题解决方案
首先,你需要先导入random模块(你的代码里漏掉了,否则会报错),然后通过一个列表来记录每次模拟的掷币次数,最后用Python内置的max()和min()函数就能轻松得到最大值和最小值。修改后的代码如下:
import random # 用来存储每次模拟的掷币次数 flip_counts = [] # 重复100次模拟 for _ in range(100): balance = 3 count = 0 while balance > 0: # 掷硬币:1代表正面赢1,2代表反面输1 flip = random.randint(1, 2) if flip == 1: balance += 1 else: balance -= 1 count += 1 # 把这次模拟的掷币次数加入列表 flip_counts.append(count) # 计算并打印最大、最小掷币次数 max_flips = max(flip_counts) min_flips = min(flip_counts) print(f"100次模拟中,最多掷币次数:{max_flips}") print(f"100次模拟中,最少掷币次数:{min_flips}")
关键说明:
- 用
flip_counts列表保存每次模拟结束后的掷币次数,收集所有数据后方便后续计算。 - Python内置的
max()函数会从列表中找出最大数值,min()函数找出最小数值,直接调用即可,无需自行编写复杂逻辑。 - 移除了冗余的中间打印语句,只保留最终结果输出,避免过多干扰信息。
内容的提问来源于stack exchange,提问作者Paul Draper
相关产品推荐
相关产品推荐

