如何利用产生0-7的随机函数,产生1-10的随机数

设我们拥有一个随机数发生器rand7均匀产生1-7之间随机整数,如何构造rand10均匀产生1-10之间的整数

由于rand7是均匀产生,因此由均匀分布的概念来说,产生1-7之间的概率是相同的分别是1/7,因此在该条件下,为了满足计算需要可以适当丢弃1-7之间的数字,而不会影响其他数字获取的概率

如何利用产生0-7的随机函数,产生1-10的随机数如何利用产生0-7的随机函数,产生1-10的随机数第一步:将1-7数字中的7移除掉,剩下1-6分别为一半奇数一半偶数,奇偶概率相同

第二步:将1-6数据分别于1进行按位与操作,将1-6转换成0-1

第三步:4次循环,每次由1-6数字产生0-1数字,生成0-15范围数字

第四步:由于0-15生成概率相同,丢弃掉0与11-15保留1-10

同理可进行任意0-n到0-m的转换