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