《魔兽世界》roll点诀窍与原理

时间:2012/01/13 11:47:29 编辑:Ocean

如果说自己roll到了78点,而装备却进了B的包里,于是大家都以为B的运气好
但事实不是如此,我们看到的内容只能是
A掷出了78点
B掷出了78点
C掷出了78点
而实际情况是:
A掷出了78.45123
B掷出了78.49968
C掷出了77.83867
由于四舍五入,所以3人的点数显示均为78点,实际为B的ROLL点最高
(以上部分是简单的说,以下部分,如果嫌弃,可以不用看了。如果想了解原理的可以继续往下看)

经常看到论坛上有人抱怨

为什么我和他都roll 100点,东西却是他拿到的?
于是经常听到有人说,有时候打raid,yy里也会有人自以为是的总结,无外乎以下3点
1.对于roll了相同点数的人,系统随机分配给其中一人
2.对于roll了相同点数的人,系统给先点了需求的那个人
3.对于roll了相同点数的人,系统给后点了需求的那个人

其实事实并不是如此
1.事实上不存在2个能roll到相同点数的人
2.目前的随机函数命令都是伪随机数(不是说伪随机数就是人为控制,它只是尽可能的创造出随机性,尽管它依然是个伪随机数,不要纠结于这点,想详细了解的请自行百度)
3.对于roll到相同点数的人,其实他们实际的点数并不相同

接下来解释原因
随机数产生的范围是0~1
那为什么我们看到的是1-100呢?只要在随机数生成后乘以100,再四舍五入便行了
举例,LZ掷出了色子,于是系统内部运行命令RAND(),产生随机数字0.8345274
但是LZ在界面上看到的数字就是INT(0.8345274*100),即83点
不过INT取整函数存在多种,有向上、中、下取整,如果以上数字使用向上取整函数的话,那输出结果便是84了
(BLZ使用哪个函数我们就不得而知了,至少我不知道,咔咔)

说到这里,聪明的你应该明白为什么当2个人甚至3个人ROLL出84点时,系统能判定究竟是谁获得装备了吗?
比如A掷出了84点,系统内部随机数为0.8345274
比如B掷出了84点,系统内部随机数为0.8389531
比如C掷出了84点,系统内部随机数位0.8317664
即B>A>C,而不是我们从表面上看见的84=84=84
那么我们可以得知,实际是B掷点最高,所以物品由B获得
当然如果是这个情况,那么我们还可以得知BLZ使用的是向上取整法

然而实际情况我们并不知情,
唯一可以确定的是,我们的ROLL点并不是我们所看到的实际数字
同样的100点
可能A掷出的点数是1
而B掷出的点数是0.9999999999999999999
可惜,能拿到物品的是A

可能你会有个问题,如果两个人都ROLL到1了呢?
请放心,因为这实际上是一个伪随机数,所以不会存在2个相同的数
当然如果真的存在了,也会有方法可以避免他的存在,如小数点后不断增加直到出现不相同的数字为止
具体方法,由于LZ学术不精,恕不多加阐述了

所以以后若发现点数相同却没拿到物品的时候也不用叹息啦,惜败惜败,保持良好的心态才是最好的

最新资讯
9.0坐骑获取攻略大全 9.0铭文新图纸大全 9.0烹饪新图纸大全 9.0铭文新图纸大全
热门资讯
9.0全职业专精传说之力大全 9.0全职业专精橙装大全 纳斯利亚堡温西尔盟约武器掉落兑换 盟约如何重新选择
宏伟宝库传说之力掉落一览 黑市新物品一览 个人同服务器DH数量限制介绍 9.0主要渔点介绍
炼金专业合剂一览 炼金专业实用药水一览 炼金专业战斗药水一览 各部位附魔效果一览

相关攻略
相关游戏