本文从计算机技术角度分析合成概率问题,根据合成事件的本质,从最新随机数种子出发,分析计算机模拟随机事件问题。
本人 轩辕(柳靖怡) 吴团“星愿”欢迎您
看了那么多人讨论有关随机合成的问题,本人也想发表一些意见,如有错误,希望重点本科学校的数学专业和计算机专业的高手提出宝贵的意见,在此先致谢了。同时也希望有人能帮我进行下一步的分析与探讨。
首先从理论上出发,合成事件在理论上来说,各次合成之间应该是相互独立的随机事件,也就是说前面的合成成功与否不影响下一次的合成,这一点,有很多的朋友的提出来过。于是,在这个理论上来说,合成的时候,正如许多朋友认为的,垫底是没有用的。
但是,由于目前计算机技术的发展并不够完善,在使用计算机模拟随机事件的方面,并不能完全实现模拟。也就是说,我们目前根本做不到让计算机完全模拟随机事件,跟本做不到随机事件之间的完全独立!
现在计算机在实现模拟随机数的时候,都是依赖于一定的伪随机数种子,即某一特定的随机数生成法则,伪随机数种子的好坏决定了计算机产生的随机数接近真实随机数的好坏程度。
在目前,比较常用的随机数生成种子,大部分都有一个递推的关系存在,即上一生成的随机数影响下一次,当然,也有的不是直接的递推关系,但是,仍然摆脱不了他们自己内部的生成随机数之间的相关关系。在指定伪随机数种子下,生成的随机数在总体上符合目标概率。可以确认,计算机在模拟随机事件的时候,已经让理论上是完全独立的事件不完全独立,而两者相关系数的大小就与程序所采用的随机数种子相关了。我们在数学里面学到的那些关于概率的知识在这里已经不是那么完全适用了……
于是,我们问题转到了三国这个游戏到底使用的什么样的伪随机数种子,即这个游戏到底是采用的什么样的随机数生成法则,以及这种随机数生成法则下合成事件之间的关系问题。
分析三国这个游戏,这个游戏在技术上并不是那么好,众所周知,可以预见,他们所采取的随机数种子也不是那么完美,甚至可能是那种非常低级!
首先,我采用MATLAB7.0软件做了一个模拟。熟悉MATLAB软件的朋友都知道,MATLAB作为一款被广泛接受的科学计算软件,他有一个比较好的随机数生成函数,可以生成均匀随机数和符合标准正台分布的随机数。
在本次模拟中,我才用蒙特卡罗方法,利用MATLAB模拟计算了1000000次成功概率为80%的合成事件。得到的结果如下:
总计 失败的次数为: 200411 (20.0411%≈20%)
连续2次失败的次数为: 40091 (4.0091%≈4%)
连续3次失败的次数为: 7977 (0.7977%≈0.8%)
总体上来看,MATLAB产生的随机数还是不错的,目标概率为20%的事件,在1000000次模拟中的实验结果为79.9589%,误差仅为0.051374%。
而且从上面的结果中,我们可以知道,假若三国采取的伪随机数种子和MATLAB一样,那么,通过垫底,我们可以将我们心爱的装备的合成成功率大大提高。原本成功率的80%的装备,在垫底失败一次之后再去合成的成功率为96%,再垫底失败两次之后再去合成的成功率为99.2%。那么一点点的失败率也失败那就真的是怪我们的RP不好了。
但是,三国这个游戏的合成概率随机数法则真的有MATLAB那么好吗?我不是三国这个游戏开发人员,我也不大清楚了。根据个人和游戏中的朋友的合成经验,我觉得三国这个游戏的随机数生成法则恐怕……很烂!
我曾经遇到过四、五次80%的成功率下连续失败4次这样的事情!这样的事情在MATLAB模拟里面只有0.16%,即统计意义上625次才出现一次,我想我应该还没有合成那么多的装备吧,能四、五次碰上这种好事。相信大家也遇到过不少这样的事情了!
所以我个人猜想,三国这个游戏采用的随机数生成法则可能跟时间相关。比如说,以10妙为一个周期,仍以成功率为80%的合成事件为例,碰巧在前8秒内合成的东西判定成功,后2秒内合成判定失败。当然,也可能是以10微秒为一个周期,如此循环。于是我们出现连续失败也就不难理解。当周期比较长的时候,在失败的那段时间内全失败;当周期比较短的时候,由于大家在合成的时候,间隔时间差不多是一样的,很不巧,你的间隔时间刚好是这个周期的整数倍,于是,你就连续失败,直到你终于崩溃,离开炼造坊。
对于三国游戏的合成是否于时间有关,由于没有帮手,我的调查试验没有能够继续,希望能有志愿者能够帮我啦!
对与三国这个游戏对于合成的成功率还有其他一些可能性的猜测,同样由于人手的不足,没能进行测试,也就不在这里妄下定论了。
相信大家也不少好的看法,不少好的猜测,希望不吝指教,留下您的意见。有意见一定要说出来啊,说不定你的一个意见让我们能够将三国合成面纱给摘下来!
由于没有帮手,对于合成的分析也处于停顿状态,愿意协助的调查的在轩辕区密我啊!
谢谢斑竹让我这篇文章发出来,也谢谢大家花时间看完!
本人 轩辕(柳靖怡) 吴团“星愿”欢迎您!