综合python案例,次优剧本概率是多少?

wen python案例 6

Python 综合案例:次优剧本概率分析

我来用一个完整的 Python 案例来演示"次优剧本概率"的计算,这个概率取决于你设置的场景,我先给出一个通用模型,再用具体案例说明。

综合python案例,次优剧本概率是多少?


问题建模

假设一个故事/剧本有 n 个关键决策点,每个决策点有若干分支:

  • 主路径(最优剧本)概率最高
  • 其他分支为次优剧本
  • 次优剧本概率 = 1 − 最优剧本概率

Python 实现

from itertools import product
def script_probabilities(branches):
    """
    branches: 每个决策点的 [(分支名, 概率), ...] 列表
    返回所有剧本组合的概率,并排序
    """
    scripts = []
    for combo in product(*[b for b in branches]):
        prob = 1.0
        for name, p in combo:
            prob *= p
        scripts.append((combo, prob))
    scripts.sort(key=lambda x: x[1], reverse=True)
    return scripts
def suboptimal_probability(branches):
    """次优剧本概率 = 1 - 最优剧本概率"""
    scripts = script_probabilities(branches)
    best = scripts[0][1]
    return 1 - best, best
# ---------- 案例 1:三幕剧,每幕二选一 ----------
branches = [
    [("英雄接受召唤", 0.7), ("英雄拒绝", 0.3)],      # 第一幕
    [("结识盟友",     0.6), ("独自前行", 0.4)],      # 第二幕
    [("牺牲自我",     0.5), ("保全自己", 0.5)],      # 第三幕
]
sub, best = suboptimal_probability(branches)
print(f"最优剧本概率: {best:.4f}")
print(f"次优剧本概率: {sub:.4f}")
print("\n全部剧本(按概率排序):")
for combo, p in script_probabilities(branches):
    names = " → ".join(c[0] for c in combo)
    print(f"  {p:.4f}  {names}")

输出:

最优剧本概率: 0.2100
次优剧本概率: 0.7900
全部剧本(按概率排序):
  0.2100  英雄接受召唤 → 结识盟友 → 牺牲自我
  0.2100  英雄接受召唤 → 结识盟友 → 保全自己
  0.1800  英雄接受召唤 → 独自前行 → 牺牲自我
  0.1800  英雄接受召唤 → 独自前行 → 保全自己
  0.0900  英雄拒绝 → 结识盟友 → 牺牲自我
  0.0900  英雄拒绝 → 结识盟友 → 保全自己
  0.0600  英雄拒绝 → 独自前行 → 牺牲自我
  0.0600  英雄拒绝 → 独自前行 → 保全自己

场景 最优概率 次优概率
3 幕 × 2 分支(如上) 21 79
3 幕 × 2 分支(各 0.9/0.1) 729 271
5 幕 × 2 分支(各 0.5/0.5) 031 969
n 幕 × 2 分支(均匀 50%) (1/2)ⁿ 1 − (1/2)ⁿ

通用公式:

次优剧本概率 = 1 − ∏ (每个决策点最优分支的概率)

直观理解

  • 分支越多、越均匀 → 次优剧本概率越接近 1
  • 分支越少、最优路径越突出 → 次优剧本概率越低
  • 在典型的"均匀二选一"模型中,只要超过 3 个决策点,次优剧本概率就 超过 87%

请补充你的具体条件

上面的案例是通用模型,如果你说的是某个具体场景

  • 卡牌游戏抽卡序列?
  • 剧情分支游戏(如《底特律:变人》)?
  • 强化学习的策略次优率?
  • 某个特定概率分布的剧本?)

请告诉我:

  1. 决策点数量 n
  2. 每个点的分支数概率分布
  3. 次优剧本的定义(是"非最优的单条路径"还是"除最优外的所有路径"?)

我可以直接帮你算出精确数值

抱歉,评论功能暂时关闭!