关于randbetween连乘的问题

问题

两个数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的值
关于randbetween连乘的问题 - 建筑学概论 - Seven的部落格
  • 然后进行x集合与y集合相乘,得到z的各种情况
关于randbetween连乘的问题 - 建筑学概论 - Seven的部落格
  • 对z进行数据统计,得到各概率结果
关于randbetween连乘的问题 - 建筑学概论 - Seven的部落格
关于randbetween连乘的问题 - 建筑学概论 - Seven的部落格

小结

 
可以看到,z的结果并不在1-25之间每个整数上都存有概率,而且z的概率分布并不是均匀分布。在这里,之所以提出这个问题出来,是因为很多时候我们在做事情,总喜欢想当然,认为randbetween(1,100)=randbetween(1,10)*randbetween(1,10)
举个实际点的例子,策划希望某件装备的掉率下调至1/1000000,但是程序在这里无法直接提供这种精度的数值,因而就会考虑将这个掉率进行两次计算,即1/1000000=1/10000*1/100。如果修改过的方案的效果跟之前的方案效果是等价的,当然可以采用;但是如果未经思考论证,大家都想当然的直接使用,那么很可能就在这里埋下了隐患,最终甚至影响到整个服务器的游戏经济。
原文地址:https://www.cnblogs.com/architecture101-gbt/p/8303407.html