TS自带的随机函数为Math.random(),但是经过笔者测试,其随机性并不均匀。
比如我有个需求,从[0,3]中随机获得一个数字。
在CocosCreator中使用自带随机函数,代码如下:
let range = max - min;
let ranValue = min + Math.round(Math.random() * range);
在update中运行100次,统计获得的0,1,2,3的结果如下:
可见结果很不均匀。
升级版随机数解决方案
网上找到一份 线性同余随机数
已经集成到我的github中
同样的需求,使用该随机数方案,得到的结果如下:
补充:
9301, 49297, 233280这几个数字的来由 https://www.zhihu.com/question/22818104