rand函数只能均匀的生成指定范围的随机数怎么均匀生成其它范围的

简介给一个rand(6) 可以等概率返回1到6,只能用这个函数写出rand(4) 给一个rand(n)可以等概率返回1到n,只能用这个函数写一个随机抽取m个数的函数 1. 范围变大,通过多次rand 相加,得到指定范围内的随机数,均匀的。若长度和需要相同,取余即可。 rand(4)  生成rand(6) (rand(4) + rand(4) )%7  即可 2. 范围变小 舍弃不符合条件的数

给一个rand(6) 可以等概率返回1到6,只能用这个函数写出rand(4)

给一个rand(n)可以等概率返回1到n,只能用这个函数写一个随机抽取m个数的函数


1. 范围变大,通过多次rand 相加,得到指定范围内的随机数,均匀的。若长度和需要相同,取余即可。

rand(4)  生成rand(6)

(rand(4) + rand(4) )%7  即可


2. 范围变小

舍弃不符合条件的数据,重新生成。

不舍弃的方法,按方法一生成倍数:

rand(6)  生成rand(4)

(rand(6) + rand(6)) / 3 待确定

新加评论 评论标题: