当你在大多数语言中使用随机(最小,最大)函数时,分布是什么样的?
如果我想在20%的时间内产生一系列数字,而在80%的时间内产生另一个数字范围,我该怎样才能生成随后的一系列随机数呢?
ex)我应该得到随机频率,但“1”的频率必须比频率“0”高20%左右
解决方法:
对于大多数语言,生成的随机数可以取决于该语言中的算法,或者基于诸如时间,处理器,种子数等几个因素随机生成.
分布不正常.事实上,如果函数返回5个整数,则所有5个整数都很有可能出现在下一个函数调用中.这也称为均匀分布.
因此,如果您希望在20%的时间内生成一个数字(比如7),而在80%的时间内生成另一个数字(比如13),您可以这样做一个数组:
var arr = [7,13,13,13,13];
var picked = arr[Math.floor(Math.random()*arr.length)] ;
// since Math.random() returns a float from 0.0 to 1.0
因此7有20%的机会出现,13有80%的机会出现.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。