由rand5生成rand7:
int Rand7(){
int x = ~(1<<31); // max int
while(x > 21)
x = 5 * (Rand5() - 1) + Rand5() // Rand25
return x%7 + 1;
}
由rand5生成rang8
int Rand8(){
int x = ~(1<<31); // max int
while(x > 24)
x = 5 * (Rand5() - 1) + Rand5() // Rand25
return x%8 + 1;
}
两个生成随机数的函数Randa和Randb, 你可以通过以下方式轻松构造Randab,生成1到a*b的随机数。
Randab = b * (Randa - 1) + Randb
Randab = a * (Randb - 1) + Randa
给你一个随机生成a到b的函数, 用它去实现一个随机生成c到d的函数。