问题
两个数x、y都服从区间为[1,5]的均匀分布,并且x、y均为整数,求解z=x*y的分布。
分析
x = randbetween(1,5),y = randbetween(1,5),x、y在其区间内的各点概率已知,利用枚举法列出z=x*y的各种可能情况,并求得各概率。
- 利用Excel进行求解,首先给出x、y的值
- 然后进行x集合与y集合相乘,得到z的各种情况
- 对z进行数据统计,得到各概率结果
小结
可以看到,z的结果并不在1-25之间每个整数上都存有概率,而且z的概率分布并不是均匀分布。在这里,之所以提出这个问题出来,是因为很多时候我们在做事情,总喜欢想当然,认为randbetween(1,100)=randbetween(1,10) *randbetween(1,10) 。
举个实际点的例子,策划希望某件装备的掉率下调至1/1000000,但是程序在这里无法直接提供这种精度的数值,因而就会考虑将这个掉率进行两次计算,即1/1000000=1/10000*1/100。如果修改过的方案的效果跟之前的方案效果是等价的,当然可以采用;但是如果未经思考论证,大家都想当然的直接使用,那么很可能就在这里埋下了隐患,最终甚至影响到整个服务器的游戏经济。