这个页面或章节尚在编辑中。
请注意,部分内容可能尚未完成或存在错误。您也可以编辑页面帮助我们完善内容。

随机方式

骰子(Dice)

当系统需要“判断一个概率”时,通常使用一个特定的随机数生成器——一枚虚构的“百面骰子”来进行概率判定,其使用类似于《克苏鲁的呼唤》(Call of Cthulhu,简称COC)规则中的检定逻辑(本页面将沿用这一称呼):

随机生成一个0.0~100.0之间的浮点数(不包括100.0),若 该数值 ≤ 概率 * 100 ,则视为通过(成功);反之则视为不通过(失败)。

  • 明日方舟中的骰子仅以数值作为检定结果,不包含额外的“大成功”/“大失败”规则。
  • 游戏中大部分以“X%”标注的概率均为“进行一次骰检定,若成功则...”的逻辑,其中包括但不限于概率闪避(如贝洛内)、概率晕眩(如)、概率格挡(如星熊)、概率回费(如齐尔查克)等。
※例:贝洛内拥有80%概率的闪避效果(也即检定成功的阈值为80)。当其受到合适的伤害时,他会进行一次骰子检定。
假设“骰子”的结果为82.0,82.0>80,检定失败,继而导致闪避不触发;若结果为20.33,20.33≤80,则检定成功,继而触发闪避效果,将此次伤害闪避(若可能)。
※但一些不标注为“X%”的随机事件也可能使用到了骰子检定。

丢骰子属于一次取随机数行为。因此在代理作战中如果两个取骰子的事件顺序互换,其结果也会发生互换(详见#随机数轴)。

  • 但概率为0时除外,此时将不会尝试投掷骰子,直接视为检定失败,因此不会占用随机数。

伪随机分布式骰子(DicePRD)

伪随机分布(Pseudo Random Distribution),简称PRD,是一种确保一个事件的概率不会过度连续发生,也不会过度连续不发生的算法。

其原理简单来说就是“依照连续失败的次数,增加成功的概率”。

游戏中存在两种伪随机分布式的随机数生成器,且都被称为DicePRD,因此此处以使用者为区别进行解释。

虽然名字也叫“骰子”,但伪随机分布式骰子的算法是复合的,其实际占用的随机数数量会根据算法的不同产生变化。

澄闪式DicePRD

可能是为了确保天赋不会频繁连续触发,同时也不至于始终触发,游戏内为澄闪的第一天赋自爆概率设计了一套伪随机分布式随机数,它具有以下参数:

  • 初始概率:即首次丢“骰子”时的概率,单位为100%
  • 累加概率:即每次失败时累加的概率,单位为100%
  • 保底次数:即连续失败即将达到一定次数后,必定成功的保底机制
  • 连续失败次数将记录在使用DicePRD的单位身上(每次失败时+1,成功时归零)

每次遇到调用此DicePRD的事件时,会执行下列计算:

  • 若 (连续失败次数+1) ≥ 保底次数,则跳过后续计算步骤,直接判定成功。
  • 否则,计算 实际概率 = 初始概率 + 连续失败次数 * 累加概率
    之后以实际概率,使用骰子进行一次检定
    ※特别的,如果实际概率≥100%,也不会使用骰子检定,直接判定成功。

作为用例参考,在澄闪的例子中:

  • 初始概率 及 累加概率 = 0.015
  • 保底次数 = 40
  • 使用DicePRD的单位 = 自身
  • 调用事件 = 浮游单元攻击时

卫戍协议式DicePRD

在卫戍协议:盟约 下半期中,可能是为了确保一些概率不至于低到一整局无法触发,游戏内为【叙拉古】盟约的再部署概率使用了一套新的伪随机分布式骰子。该骰子也被用于新版的【不屈】盟约。

它具有以下参数:

  • 期望概率:即DicePRD最终希望给玩家带来的事件发生的宏观综合概率
  • 基础概率:使用乘以100随后就近取整后的期望概率进行表格查询,使用表格中对应的值作为计算用的基础概率
  • 连续失败次数将记录在全局黑板上,在同一场战斗内的不同干员、不同玩家间互通(每次失败时+1,成功时归零)

每次遇到调用此DicePRD的事件时,会执行下列计算:

  • 根据预设对照表,以期望概率为基准获取要使用的基础概率
期望概率与基础概率对照表
期望概率(就近取整至1%) 对应的基础概率
0% 0.0
1% 0.00016
2% 0.00062
3% 0.00139
4% 0.00245
5% 0.0038
6% 0.00544
7% 0.00736
8% 0.00955
9% 0.01202
10% 0.01475
11% 0.01774
12% 0.02098
13% 0.02448
14% 0.02823
15% 0.03222
16% 0.03645
17% 0.04092
18% 0.04562
19% 0.05055
20% 0.0557
21% 0.06108
22% 0.06668
23% 0.07249
24% 0.07851
25% 0.08474
26% 0.09118
27% 0.09783
28% 0.10467
29% 0.11171
30% 0.11895
31% 0.12638
32% 0.134
33% 0.14181
34% 0.14981
35% 0.15798
36% 0.16633
37% 0.17491
38% 0.18362
39% 0.19249
40% 0.20155
41% 0.21092
42% 0.22037
43% 0.2299
44% 0.23954
45% 0.24931
46% 0.25987
47% 0.27045
48% 0.28101
49% 0.29155
50% 0.3021
51% 0.31268
52% 0.32329
53% 0.33412
54% 0.34737
55% 0.3604
56% 0.37322
57% 0.38584
58% 0.39828
59% 0.41054
60% 0.42265
61% 0.4346
62% 0.44642
63% 0.4581
64% 0.46967
65% 0.48113
66% 0.49248
67% 0.50746
68% 0.52941
69% 0.55072
70% 0.57143
71% 0.59155
72% 0.61111
73% 0.63014
74% 0.64865
75% 0.66667
76% 0.68421
77% 0.7013
78% 0.71795
79% 0.73418
80% 0.75
81% 0.76543
82% 0.78049
83% 0.79518
84% 0.80952
85% 0.82353
86% 0.83721
87% 0.85058
88% 0.86364
89% 0.8764
90% 0.88889
91% 0.9011
92% 0.91304
93% 0.92473
94% 0.93617
95% 0.94737
96% 0.95833
97% 0.96907
98% 0.97959
99% 0.9899
100% 1.0
  • 计算 实际概率 = ( 连续失败次数 + 1 ) * 基础概率
    之后以实际概率,使用骰子进行一次检定

作为用例参考,在【叙拉古】盟约的例子中:

  • 期望概率 = 3%(这使得基础概率 = 0.00139)
  • 首次触发事件(【叙拉古】6人盟约激活情况下,【叙拉古】盟约/【调和】盟约干员造成普通伤害)时,有0.139%概率通过检定(造成真实伤害与恐惧效果);检定未通过情况下,概率增加为0.278%。
  • 后续每次检定失败都将再增加0.139%概率,直至检定成功时,概率回落至初始的0.139%。

随机整数

除了骰子以外,游戏内还存在许多概率分布并不能直接以100%整数分割,或概率权重不平均的随机数。

艾雅法拉天赋的“部署后立即随机获得7~15点技力”为例:

  • 其数据内的随机范围下限为7,上限为16。
  • 当每次调用随机整数时,系统会生成一个(下限≤x<上限)的随机小数,随后再对其向下取整。
    因始终无法到达上限,因此游戏内显示的15(16-1)确实是随机整数逻辑能产生的最大整数。

取用随机整数同样属于一次取随机数行为。

随机选择

除了数字上的随机,明日方舟还存在不少事件上的随机。这里以天赋的“随机选择”举例:

  • 待补充

取用随机整数同样属于一次取随机数行为。

随机数轴

轴与频道

待补充

不可控的“随机”

除了上述这些明确用到了随机逻辑的内容外,游戏内还存在不少实际上不可控的“随机”事件。

从程序的角度来看,它们并非随机,但从实际观测的角度来看,它们是无法预测、无法复现的。

这些不可控“随机”均不属于取随机数行为,因此均不受随机数轴影响。

同时碰撞

较为知名的一个“随机”行为。表现为不死的黑蛇释放的火球雨同时碰撞到多个单位(乌萨斯平民)时,哪个单位受伤对于玩家而言是随机的。

待补充

临时碰撞

维什戴尔因其天赋而对于处理顺序具有的高度需求下,其被观测到的攻击命中顺序实际上完全无序且不可预测。

待补充

无序施加Buff

死芒三技能的机制实现中,使用到了CreateBuffInRange方法,并让第一个处理的单位“消耗”,用于实现“消耗一个悲叹的仆役”

但此方法的处理顺序对于玩家而言也是不可预测的。

待补充