You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python掷双骰子统计结果如何将横向星号直方图改为纵向展示

Python双骰子投掷纵向直方图实现

首先优化原代码的冗余统计逻辑,再通过从高到低遍历层数的方式输出纵向直方图,完整实现代码如下:

import random

def q6():
    results = []
    # 模拟100次投掷
    for _ in range(100):
        d1 = random.randint(1, 6)
        d2 = random.randint(1, 6)
        sum_val = d1 + d2
        results.append(sum_val)
    # 统计2~12每个和的出现次数,存入有序列表
    counts = [results.count(i) for i in range(2, 13)]
    max_count = max(counts)
    display = ""
    # 从最高层往下逐行打印
    for layer in range(max_count, 0, -1):
        for cnt in counts:
            # 当前层数小于等于对应次数时输出星号,否则输出空格对齐
            display += "* " if cnt >= layer else "  "
        display += "\n"
    # 最后打印底部的数字标签
    display += " ".join(str(i) for i in range(2,13))
    return display

# 测试输出
print(q6())

如果需要调整列间距,只需要修改星号和空格的占位宽度即可,比如把* 改为*、 改为 就能让列间距更宽松。

内容的提问来源于stack exchange,提问作者user15464781

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 06:06:05