leetcode 479用 Rand7() 实现 Rand10()

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014204761/article/details/82950097

rand7()表示随机等概率的产生1-7之间的任一个数

要用rand7产生rand10可以考虑用七进制转化为十进制扩大数字范围,基本思路是产生randN,N是10的倍数。

class Solution:
    def rand10(self):
        """
        最后的返回结果记得加1
        """
        res = self.rand40()
        while res >= 40:
            res = self.rand40()
        return res % 10 +1
    '''
    产生0-39 40个数 是10 的倍数
    '''
    def rand40(self):
        res = 7 * (rand7()-1) + (rand7()-1)
        return res
    

猜你喜欢

转载自blog.csdn.net/u014204761/article/details/82950097