470. 用 Rand7() 实现 Rand10()
已知 rand_N() 可以等概率的生成[1, N]范围的随机数 那么: (rand_X() - 1) × Y + rand_Y() ==> 可以等概率的生成[1, X * Y]范围的随机数 即实现了 rand_XY()
class Solution:
def rand10(self
):
num
= (rand7
()-1)*7+rand7
()
while True:
if num
<=40:
return num
%10+1
num
= (rand7
()-1)*7+rand7
()