leetcode470 Random5实现Random7

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;
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值