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%
请补充你的具体条件
上面的案例是通用模型,如果你说的是某个具体场景(
- 卡牌游戏抽卡序列?
- 剧情分支游戏(如《底特律:变人》)?
- 强化学习的策略次优率?
- 某个特定概率分布的剧本?)
请告诉我:
- 决策点数量 n
- 每个点的分支数和概率分布
- 次优剧本的定义(是"非最优的单条路径"还是"除最优外的所有路径"?)
我可以直接帮你算出精确数值。
版权声明:足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
足球直播
足球直播
足球直播
足球直播
足球直播
中超直播
中超直播
中超直播
中超直播
中超直播
英超直播
英超直播
英超直播
英超直播
英超直播
德甲直播
德甲直播
德甲直播
德甲直播
德甲直播
西甲直播
西甲直播
西甲直播
西甲直播
西甲直播
意甲直播
意甲直播
意甲直播
意甲直播
意甲直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播