重点是每个数字产生的概率要相同。
例如,rand5生成从1-5,每个数字的概率为0.2
如果只用7个rand5相加来生成的话,概率是两边的数小,中间的数大。
正确产生的方式如下:
num=5*(rand5-1)+rand5-1
if(num<21)
print num%7+1;
其中5*(rand5-1)生成等概率的数0,5,10,15,20,而后面的rand5-1生成等概率的0,1,2,3,4
这样两个数相加,就可以得到等概率的0-24.
这个时候取0-20就可以等概率的区分,rand7的每个数字在这其中出现了3次,概率相等。