基本资料 | |
用语名称 | Random Number Generation 随机数生成 |
---|---|
其他表述 | RNG、随机因素、随机概率、运气因素 |
用语出处 | 游戏术语 |
相关条目 | 玄学、伪随机 |
随机数生成(英语:Random Number Generation),或随机数生成器(英语:Random Number Generator),简称RNG,是一个游戏术语。主要在欧美游戏圈中使用。
本义是指一种产生随机数的方式。
随机数,顾名思义,是一种完全无序的数,后面的数与前一次生成的数毫无关系。一般的,由于计算机算法的确定性,计算机无法在没有外来输入(包括时间输入)时生成随机数,只能基于当前状态(随机种子)生成一个“看上去”是随机的序列。这种随机数序列被称作伪随机数。
计算理论中对伪随机数的定义是:
如果一个分布可以做到,在同级别的攻击者无法有效地分清这个分布和平均分布,那么这个分布是一个伪随机分布。
A distribution is pseudorandom against a class of adversaries if no adversary from the class can distinguish it from the uniform distribution with significant advantage.[1]
真正的随机数一般是使用物理现象产生的:比如抛硬币、CPU的温度和电流变化、手机的加速度、原子衰变等。这样的方法被称做物理性随机数生成器。这种生成器使用较为复杂,一般只用在生成少量随机数的场合。在需要大量产生随机数的场合,可以用它为伪随机数生成器提供种子,以制造出难以进行密码学分析的(多个混杂在一起的)伪随机数序列。
“伪随机数”一词的常见误用 |
---|
在计算机领域,“随机性”可以根据对其进行分析的难度区分级别。如果分析需要的计算强度超过了观测者的处理能力,则可以视为是随机的。 一般的随机数生成器足以应对日常使用需求。密码学需要更安全的随机数生成器。最安全的随机数来自自然界中的混沌现象和量子物理学效应。 DOTA玩家将DOTA中的随机分布生成机制称为“伪随机”,然而在数学角度来说,它应当称为“伪随机分布(Pseudo Random Distribution,PRD)”或者“伪随机数采样(Pseudo-random number sampling)”,也就是基于一个普通的伪随机数生成器,生成一个非常规的概率分布。DOTA中将其称为“随机分布(Random distribution)”。其机制为[2]:
$$P(X_k) = (1-C) \, (1 - 2 \, C) \, ... \, (1 - (k-1) \, C) \, k \, C = k! \, C \, \prod_{i=1}^{k-1}(\frac{1}{i} - C)$$
其数学性质有:
对比:当概率为$25\%$时,DOTA分布(DOTA2)与二项分布的差异。对比“在一次事件发生后(累积概率补偿归零后),下一次触发事件是第几次”,DOTA分布(蓝色)比二项分布(橙色)更为集中,也就是概率造成的波动幅度更小,且没有长尾——最大次数为$10$次,如果$9$次判定不通过则第$10$次必定通过。
在这种机制下,“垫刀”是有意义的行为。连续N次无影响的、可重复事件中的判定失败,可以大大增加下一次有意义事件的判定成功率。例如,先去砍小兵几刀,等发生连续几刀不出爆击的事件后,再去进行gank,则第一刀会有很高的暴击率。 其他游戏中也可能存在类似的带有补偿的随机数机制。DOTA的概率叠加机制不是唯一的伪随机分布机制,常见的还有洗牌算法等。
常见的误区有:
|
游戏中常用的随机数生成算法:
同样,算法的输入值(种子)的来源也多种多样。
常见的种子来源:
这可能便是某些玄学背后的依据。
在游戏中,这些随机数能够决定当中的随机事件,如暴击率、命中率、稀有物品出现率。而这些由随机数生成影响的随机事件往往不可预测,且能在关键时刻影响玩家的成败。简单来说,这种与玩家技术无关,又能在关键时刻影响游戏输赢的游戏内不确定因素都称作RNG。
对于一些过于依赖随机概率的游戏过法,通常用“RNG成分太多”来形容。这种过法不容易被其他玩家照抄,也不适合成为能面向大众的攻略。
与之相似的表述还有“玄学”,但这一表述一般用在日系游戏圈,且更多是指利用特定的场合、时间、行为来提高某一原本比较低的概率的迷信行为。
如果RNG过多,可以使用S/L大法来解决。(伪随机笑了)(铁人模式笑了)
在部分游戏中(如超级马力欧兄弟、Minecraft等),存在一些机制可以让玩家影响随机数生成。如超级马力欧兄弟的随机数生成系统与游戏时间有关。
通过这些机制,玩家可以操纵随机数,为速通等高难度挑战降低难度。
在1~100中任选一个数,本次的随机数字为:73