D&D5 版から導入されたルールの中で特に目立つのは Advantage/Disadvantage です。ルール上では暗黙的にですが Advantage/Disadvantage は固定値に変換する時は +5/-5 として扱われています。具体的には Passive Perception の値を決める時に、Perception に Advantage/Disadvantage があるならば Passive Perception の値を +5/-5 するという記載が PHB にあります。
実際の所 Advantage/Disadvantage は +5/-5 のボーナスに一意に変換できるわけではありません。Advantage/Disadvantage が無い場合の成功率に応じて効用は増減します。成功率が 50%の時に Advantage/Disadvantage の効用は最大になり、この時が +5/-5 に相当します。成功率が 50%から前後に離れれば離れる程効用は低くなり、成功率 5%或いは 95%の時に効用は最小の 5%程になります。
これらを平均すると約 15%、ボーナスで言うと +3/-3 となります。
以下が成功率に対する Advantage の効用の変化を示した表です。
成功に必要な ダイス目 | 通常の 成功率 | Advantage 有 の成功率 | 成功率 増分 |
---|---|---|---|
2 | 0.950 | 0.997 | 0.047 |
3 | 0.900 | 0.990 | 0.090 |
4 | 0.850 | 0.977 | 0.127 |
5 | 0.800 | 0.960 | 0.160 |
6 | 0.750 | 0.938 | 0.188 |
7 | 0.700 | 0.910 | 0.210 |
8 | 0.650 | 0.878 | 0.228 |
9 | 0.600 | 0.840 | 0.240 |
10 | 0.550 | 0.798 | 0.248 |
11 | 0.500 | 0.750 | 0.250 |
12 | 0.450 | 0.698 | 0.248 |
13 | 0.400 | 0.639 | 0.239 |
14 | 0.350 | 0.577 | 0.227 |
15 | 0.300 | 0.510 | 0.210 |
16 | 0.250 | 0.438 | 0.188 |
17 | 0.200 | 0.360 | 0.160 |
18 | 0.150 | 0.278 | 0.128 |
19 | 0.100 | 0.191 | 0.091 |
20 | 0.050 | 0.098 | 0.048 |
以下の様な python のスクリプトで確認しました。
#!/usr/bin/env python # advantage.py # -*- coding: utf-8 -*- import sys import random # initialize hit = 0 loop = 500000 target = sys.argv[1] random.seed() for i in range(loop): ret1 = random.randint(1,20) ret2 = random.randint(1,20) if ret1 > ret2: ret = ret1 else: ret = ret2 if ret >= int(target): hit += 1 normal = (21 - int(target)) * 0.05 advantaged = float(hit) / loop print "%s, %.3f, %.3f, %.3f" % (target, normal, advantaged, advantaged - normal)
このスクリプトをこんな感じで動かします。
$ for i in $(seq 1 20) do ./advantage.py $i done