一、总论
1.伪随机机制的意义
1.1 什么是伪随机机制
日常生活中大家都喜欢玩单机或者网络游戏,而在这些游戏中常常会存在随机,比如暴击率20%或者被动击晕15%等等,而在这些随机事件中,我们往往被告知这些随机事件也能分成两类:一类是固定的概率,常被称为“真随机”,另一类是根据游戏行为有变化的概率,则叫做“伪随机”。我们都知道计算机只能产生伪随机数,那么这里的“真随机”和“伪随机”也不是我们通常对于计算机生成随机数的随机性质的定义,而是关于这个可见概率的具体实施方法。
1.2 为什么要使用伪随机机制
所谓的“真随机”在足够大的样本下,其中某一段的连续样本会距离整体期望产生较大的偏差,简单地说,就是“脸黑,怎么一直不暴击”或者“怎么脸那么好,一直在爆击”。而“伪随机”则在具体的游戏进程中对概率进行了及时的修正,以图实现足够稳定的样本子序列。举个简单的例子的话,就是当你打不出爆击时会增加下一次的概率,而你连续打出爆击时则会降低概率,虽然这对于某些运气好的玩家来说可能是一个噩耗,但是总体上来说,这挽救了某些运气实在太糟糕的朋友。
2. 一个合理的伪随机机制的数据
2.1 以一个被动击晕技能为模版
假设这个技能来自某款知名ARPG游戏,并且这个技能在某个前版本里被修正成了伪随机机制
被动击晕:概率25%
显然这个数据的大小是和我们玩的各类游戏中的被动都十分接近的,所以这个样本有其代表性
2.2 伪随机机制的实现数据
首先需要感谢前辈们为我们分析出了WAR3这款经典的RTS游戏内的伪随机实现过程,我们可直接套用这个关系来实现我们的伪随机机制。