https://www.jianshu.com/p/f540a428d190
分2种情况
a<b ,a>b
即Random7 实现Random5 只要将映射到1-7的数上将>5的数拒绝掉即可。
具体的数学证明省略
如果a<b,即Random5去实现Random7,必须扩大映射范围。
公式为:
Randomb = a*(Randoma()-1)+Randoma();
如果这个范围还是小于b,即需要再次映射。
public int rand10() {
int res = 41;
while(res >40)
{
res = 7*(rand7()-1)+rand7();
}
return res%10+1;
}