网络游戏攻略基地

您的位置: 首页>热门游戏>魔兽世界>全文攻略:【综合】魔兽世界Roll点系统无责任猜想

魔兽世界:【综合】魔兽世界Roll点系统无责任猜想

本攻略由魔兽世界玩家【爱翼】提供

不知道从什么时候开始,黑手已经深深占据了这个游戏,打记事起,大抵是mc时代吧,诸如"哇靠,我们团长手黑死了,怒风双开3连了";"不是吧,我又roll了3点...";之类的抱怨就层出不穷.慢慢的,演变为,"你脸型不好","长的太丑了","RP有问题,平时记得要扶老奶奶过马路"之类的结论...然而,真是这样吗?所有不能解释的现象真的都归结为RPWT吗? 那么我们来推测下,究竟暴雪大神是如何来控制我等凡人的命运的.

在最前面要说的是,本文只是个人的分析个猜测,实属抛砖引玉之文,或许很可笑,究竟我还只是个没有工作经验的学生,才疏学浅,所有的知识都来自书本,并不知道当下的程序员们使用的是何种算法.假如有前辈高人,望不吝赐教,先谢过了.

首先要先说点背景资料.山口山自然是由人编写的程序,这点毋庸置疑.既然是程序,那么就逃不掉被人操纵的命运.即使是随机数也是.Roll点系统就是一个典型的随机数生成器.在计算机科学里,是没有真正的随机数存在的.祖师爷说过:

冯.诺伊曼

企图用算术方法产生真正的随机数的人是在做错事.

所以,我们roll到的随机数,不过只是伪随机数罢了,是通过一定的算法生成的随机序列,当序列足够长,这组数值近似满足均匀分布。归根结底,都是有规律可循的,当然啦,那是理论上的而已...实际要找出这些来还是很困难的,究竟不是人人能当黑客的...

拿c 来讲,在c标准库里用到的产生随机数的方法是现在用的最为广泛的线性同余算法,这种产生器得到了广泛的使用和比其它产生器都彻底的测验,其产生的随机数有在分布上有很好的特性,它类似next = current * 1103515245 12345; 由于超出了一个标准整型能储存的数字,所以用mod运算取中间段,在生成了随机序列以后,便近似得到了一个随机数.我们称之为伪随机数.但是这些随机数实在是有迹可循,只要计算伪随机序列的初始数值(称为种子)相同,则计算出来的伪随机序列就是完全相同的.于是就需要改变种子来得到不同的随机值,以达到随机数的不可猜测性的目的.常用的方法就是用时钟来控制随机种子来启动序列,但是效果仍然不是最理想的,在某些区间上会有些起伏,只是实现起来相对简单.同样的,在matlab里测试结果表明,这个闻名的软件所用的算法也是类似的同余法.

另一种产生伪随机数序列的方法就是使用加密逻辑,通过加密算法的雪崩效应,输入的每一位改变就会造成输出的巨大改变,并且假如密钥被妥善保存的话从序列中前面的数推出后面的数在计算上是不可行的,于是我们可以使用一个简单的累加器来作为输入,得到的随机序列可以直接使用(当然也可以把系统时间等等因素考虑进去作为输入来产生更随机的序列,不过这通常是没有必要的),这种方法经常用来产生会话密钥或是现时.

在密码学领域里比较流行的一种产生安全的伪随机数的方法是BBS产生器,它用其研制者的名字命名(Blum Blum Shub,不是我们nga的这类bbs),它的密码编码强度据说具有最强的公开证实.每次迭代都只取出最低位的bit.可以看出BBS产生随机数的过程非常复杂,运算量很大,嗯,这就是为安全性付出的代价-_-b.

还有要说的是现在大家每次升级wow都会提起的MD5.它属于散列算法.通过散列算法生成伪随机数的话,可以通过对系统毫秒数,鼠标位置等数据进行计算而得到.关于此,有很多可说,我学艺不精,还没到那个火候,就不好意思拿出来了...等再过几个学期再说吧...-_-b

其他的方法还有不少,但都有其自身的先天不足.比如有的算法比较轻易退化成0等等...那么就不再多提了...说多了你晕我也晕...

那么暴雪大神究竟使用的是哪种算法呢?我们不得而知...但是核心思想是不变的:高效--在达到较为理想的随机效果的前提下尽可能地节省资源.

共2页: 上一页 1 [2] 下一页

上一篇:【盗贼】刺杀匕首贼的郁闷分析    下一篇:【猎人】比火翼哨岗更好的练宠宝地 军团要塞

魔兽世界相关攻略

魔兽世界热门攻略

魔兽世界推荐攻略