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

保序前提下合并列表重复和值对应概率的实现方法(非公平骰子场景)

实现方案

核心逻辑

通过同时遍历和值、概率对,用字典记录已出现和值的累计概率+列表保存首次出现顺序的方式实现需求,时间复杂度为O(n),完全适配数百次投掷、数百个面的计算量级,无额外内存压力。

代码实现(Python)

# 输入为你每次投掷生成的和值列表、对应概率列表
Sums = [6,4,2,5,4,3]
Probs = [11/36, 9/36, 7/36, 5/36, 3/36, 1/36]

sum_prob_map = {}
condensed_sums = []
condensed_prob = []

for s, p in zip(Sums, Probs):
    if s not in sum_prob_map:
        # 首次出现的和值,同时写入顺序列表和映射字典
        sum_prob_map[s] = p
        condensed_sums.append(s)
    else:
        # 重复出现的和值,仅累加对应概率
        sum_prob_map[s] += p

# 按保留的和值顺序提取累计后的概率
condensed_prob = [sum_prob_map[s] for s in condensed_sums]

输出验证

运行后结果完全匹配预期:

  • condensed_sums = [6, 4, 2, 5, 3]
  • 转换为分数后condensed_prob = [11/36, 12/36, 7/36, 5/36, 1/36]

现有逻辑适配说明

该方案完全保留你原有和值的生成顺序,不会破坏前置逻辑中「前len(faces)个数值概率系数为1、剩余为2」的计算约定,仅需要在每次生成和值列表、对应概率列表后,替换原有去重逻辑为上述代码即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 03:09:03