rand5产生rand7
以下的randN代表随机产生0~N的数,每个数出现的概率相等。
从rand7产生rand5比较简单,当rand7得到6或者7时再次运行rand7,直到小于6时输出。
但是从rand5产生rand7就没有这么方便了。
可以考虑rand5产生更大的rand。
考虑另一个问题,如果有个rand9的程序,要随机产生0~999的数,这时思路很清晰,先rand百位,然后rand十位,然后rand个位。这样得到得数的概率都相同。
此时就可以联想到rand5产生一个6进制的2位数,即rand5 * 6 + rand5,得到rand35,然后就容易得到rand7了。