(翻译) Dota2 Random Distribution Dota2中的随机分布
原文:
https://dota2.fandom.com/wiki/Random_Distribution
本文描述了Dota2中的几种随机方式
Randomness is sometimes rejected from competitive gaming since it can decide over loss and defeat without reflecting the actual skill level. However, coping with the unexpected is an aspect of skill. Nonetheless there are a couple of random events within Dota 2, that keep the game less predictable and static. To limit the influence of huge streaks, pseudo-random distribution replaces the true random distribution where it made sense for the developers.
随机性有时会被竞技游戏所排斥,因为它可能在不反映真实技术水平的情况下决定胜负。然而,应对突发情况本身也是一种技能。尽管如此,在《Dota 2》中仍然存在一些随机事件,使游戏不至于过于可预测和僵化。为了限制巨大连续触发(连击)带来的影响,在开发者认为合适的地方,使用伪随机分布来替代真正的随机分布。
伪随机的定义Definition

下一次触发效果前需要攻击多少次,x第几次攻击才触发效果, y触发效果的概率占比
The effects of PRD on the number of attacks until the next proc.

Proc chance of PRD effects
X 表示技能或物品标注的 理论概率。
Y 实际概率(第一 二 三次的实际概率)
The geometric distribution[1] or true random distribution describes the probability of the number of events that occur before a successful event. This memoryless property is means that every "coin flip" in a sequence operates independently.
几何分布[1],也称为真正的随机分布,用于描述在一次成功事件发生之前出现的事件数量的概率。这种“无记忆性”特性意味着序列中的每一次“抛硬币”都是相互独立的。
The pseudo-random distribution[2] (often shortened to PRD) in Dota 2 refers to a statistical mechanic of how certain probability-based items and abilities work. Under a conditional distribution[3], the event's chance increases every time the event does not occur, but is lower in the first place as compensation. This results in the effects occurring with a lower variance[4], meaning the proc chance occurs in a narrow band, and operating under a concave distribution[5], meaning the proc chance has a highest point.
在《Dota 2》中,伪随机分布[2](通常简称为 PRD)指的是某些基于概率的物品和技能运作的统计机制。在一种条件分布[3]下,每当事件没有发生时,其发生的概率就会增加,但作为补偿,初始概率会更低。这使得效果出现的方差[4]更小,也就是说触发概率会集中在较窄的范围内,并且呈现出凹形分布[5],意味着触发概率存在一个最高点。
The probability of an effect to occur (or proc) on the N-th test since the last successful proc is given by . For each instance which could trigger the effect but does not, the PRD augments the probability of the effect happening for the next instance by a constant C. This constant, which is also the initial probability, is lower than the listed probability of the effect it is shadowing. Once the effect occurs, the counter is reset.
Technically, if corresponds to the event occurring on trial
and
is the inverse of that event, pseudo-random distribution enforces that
for all
. Also, when
, which occurs on the first trial
where
, the event is guaranteed if it has not already happened. This results in a distribution where
.
Example
- On melee heroes,
Effects based on PRD rarely proc many times in a row, or go a long time without happening. This makes the game less luck based and adds a great deal of consistency to many probability-based abilities in Dota 2. Gameplay wise, PRD is difficult to exploit. It is theoretically possible to increase your chance to bash or critical strike on the next attack by attacking creeps several times without the effect happening, but in practice this is nearly impossible to do. Note that for instances that would not trigger the effect, the probability counter does not increase. So a hero with critical strike attacking buildings does not increase its chance to critical strike on its next attack, since critical strike does not work against buildings. The chance is not reset/increased as long as the ability is on cooldown as well (e.g. Bash).
在近战英雄身上,**Skull Basher(碎颅锤)**的 **Bash(击晕)**效果标示为有 25% 的概率击晕目标。但在第一次攻击时,实际只有大约 8.5% 的概率触发 Bash。每当一次攻击没有触发 Bash 时,下一次攻击的概率就会增加大约 8.5%。因此:
-
第二次攻击的概率约为 17%
-
第三次攻击约为 25.5%
-
之后依次继续增加
一旦成功触发 Bash,概率就会重置为下一次攻击约 8.5%。从整体统计来看,在一段适中的时间内,Bash 的平均触发率仍然接近 25%。
基于 PRD(伪随机分布) 的效果很少会连续触发很多次,也很少会长时间完全不触发。这使游戏减少了运气因素,并为《Dota 2》中许多基于概率的技能提供了更高的一致性。
在游戏玩法上,PRD 很难被利用。从理论上讲,如果玩家先攻击小兵多次且没有触发效果,可以提高下一次攻击触发 Bash 或暴击的概率,但在实际游戏中几乎不可能刻意做到。
在 伪随机分布(PRD) 机制下,如果某个效果(比如 Bash 或暴击)一直没有触发,那么下一次触发的概率会逐渐提高。因此 理论上 可以利用这一点来“准备”一次高概率触发。
举个简单例子:
-
你的英雄有 25% 的 Bash 概率。
-
你先去攻击 小兵(creep)。
-
如果连续几次攻击都 没有触发 Bash,系统会把下一次攻击的触发概率 逐渐提高。
-
这意味着你接下来攻击敌方英雄时,触发 Bash 的概率会比正常更高。
所以从理论上说,你可以这样“利用”机制:
-
先打几下小兵 → 不触发效果 → 概率累积提高
-
然后再去攻击敌方英雄 → 更容易触发 Bash 或暴击
但是 实际游戏中几乎做不到刻意利用,原因有几个:
-
你无法精确知道当前概率已经提高到多少。
-
战斗节奏很快,通常没有时间先去打小兵“刷概率”。
-
可能在打小兵时就已经触发了效果,计数器会 立即重置。
因此,这个机制主要是 为了减少运气波动,让概率更稳定,而不是给玩家提供一种可以稳定利用的技巧。
另外需要注意的是:如果某些情况本来就不会触发该效果,则概率计数器不会增加。例如,拥有暴击技能的英雄攻击建筑时不会提高下一次攻击的暴击概率,因为暴击对建筑无效。同样地,当技能处于冷却时间时(例如 Bash),触发概率也不会被重置或增加。
击晕(Bash)
在《Dota 2》中,Bash 指的是一种攻击触发效果:当攻击命中时,有一定概率使目标 短暂眩晕(stun) 并造成 额外伤害。这一效果通常来自某些物品或英雄技能,例如 Skull Basher(碎颅锤) 或 Abyssal Blade(深渊之刃)。
Bash 的主要特点包括:
-
概率触发:每次普通攻击都有一定概率触发 Bash。
-
造成眩晕:触发时目标会被短暂控制,无法移动或使用技能。
-
附加伤害:除了眩晕外,还会造成额外的伤害。
-
伪随机分布(PRD)机制:为了减少连续不触发或连续触发的极端情况,Bash 的触发概率通常使用伪随机分布计算。
例如,使用 Skull Basher 的近战英雄在攻击时标示为 25% 的 Bash 概率,但实际触发是通过 PRD 机制逐步增加概率,从而在长期统计上接近 25%。
C Values
The values of C as a function of nominal chance are given below[6]:
C 的数值与标称概率(nominal chance)的对应关系如下所示 [6]:
| C | Nominal Chance | Approximate C |
|---|---|---|
| 0.003801658303553139101756466 | 5% | 0.38% |
| 0.014745844781072675877050816 | 10% | 1.5% |
| 0.032220914373087674975117359 | 15% | 3.2% |
| 0.055704042949781851858398652 | 20% | 5.6% |
| 0.084744091852316990275274806 | 25% | 8.5% |
| 0.118949192725403987583755553 | 30% | 12% |
| 0.157983098125747077557540462 | 35% | 16% |
| 0.201547413607754017070679639 | 40% | 20% |
| 0.249306998440163189714677100 | 45% | 25% |
| 0.302103025348741965169160432 | 50% | 30% |
| 0.360397850933168697104686803 | 55% | 36% |
| 0.422649730810374235490851220 | 60% | 42% |
| 0.481125478337229174401911323 | 65% | 48% |
| 0.571428571428571428571428572 | 70% | 57% |
| 0.666666666666666666666666667 | 75% | 67% |
| 0.750000000000000000000000000 | 80% | 75% |
| 0.823529411764705882352941177 | 85% | 82% |
| 0.888888888888888888888888889 | 90% | 89% |
| 0.947368421052631578947368421 | 95% | 95% |
True random events 真正随机事件
Flat distribution 平坦分布
Some mechanics roll a random value between 0 and 1 and scale it along the minimum / maximum gradient.
一些机制会在 0 到 1 之间生成一个随机值,然后根据 最小值 / 最大值范围 进行缩放计算。这包括:
-
单位的攻击伤害(如果存在最小攻击力和最大攻击力范围)。
-
补刀获得的金币奖励(如果给定了最小值和最大值范围)。
-
Roshan(肉山)的刷新时间。
Chaos Knight – Chaos Bolt(混沌骑士·混乱之箭)
-
最小伤害:90 / 110 / 130 / 150
-
最大伤害:180 / 220 / 260 / 300
-
最小眩晕时间:1.25 / 1.5 / 1.75 / 2(天赋:2.25 / 2.5 / 2.75 / 3)
-
最大眩晕时间:2.2 / 2.8 / 3.4 / 4(天赋:3.2 / 3.8 / 4.4 / 5)
伤害与眩晕时间 呈反向相关(伤害越高,眩晕时间越短;伤害越低,眩晕时间越长)。
Phantom Lancer – Doppelganger(幻影长矛手·神行百变)
-
重新出现半径:325
单位会在目标区域内 随机位置 重新出现。计算可能使用 极坐标:
-
角度:0°–360°
-
距离:0–325
Crystal Maiden – Freezing Field(水晶室女·极寒领域)
-
最小爆炸距离:195
-
最大爆炸距离:785
爆炸可能在四个 90° 扇区(0°–90°、90°–180°、180°–270°、270°–360°)内随机产生。
Discrete distribution 离散分布
A couple of random events have discrete states that have similar probability.
一些随机事件具有 离散状态,每一种结果出现的概率大致相同。 从几个固定结果里随机选一个,而不是在一个数值范围里随机变化。
-
例如:
-
强化神符(Powerup Runes):
从 6 种神符类型 和 2 个刷新位置 中进行离散随机选择。 -
野怪营地(Neutral camps):
小型、中型、大型以及远古营地都会从各自可能的 野怪组合 中随机生成不同的野怪。
-
Other
-
Ogre Magi – Multicast(多重施法)
-
2 倍施法概率:75% / 75% / 75%
-
3 倍施法概率:0% / 30% / 30%
-
4 倍施法概率:0% / 0% / 15%
意思是:当 食人魔魔法师(Ogre Magi) 使用技能时,有概率 自动额外施放同一个技能多次。
例如在最高等级时:
-
有 75% 概率触发 2 次施法
-
有 30% 概率触发 3 次施法
-
有 15% 概率触发 4 次施法
触发时,同一个技能会连续释放多次到目标上。
Pseudo random events
Along with the listed abilities, all Evasion sources and the drop chance of neutral items use pseudo-random distribution as well.
除了前面列出的技能之外,所有闪避(Evasion)效果来源以及中立物品(Neutral Items)的掉落概率也都使用 伪随机分布(Pseudo-Random Distribution,PRD) 机制。
总结
1.在 Dota 2 中,很多 概率触发效果(比如暴击、击晕、闪电、闪避等)都使用 伪随机分布 PRD,目的是减少连续触发,在随机性和均匀性之前取得一个良好平衡
2.伪随机C值的计算原理 https://gaming.stackexchange.com/questions/161430/calculating-the-constant-c-in-dota-2-pseudo-random-distribution
-


浙公网安备 33010602011771号