type
status
date
slug
summary
tags
category
icon
password
创建时间
Dec 25, 2024 11:53 AM
给定方法
rand7
可生成 [1,7]
范围内的均匀随机整数,试写一个方法 rand10
生成 [1,10]
范围内的均匀随机整数。你只能调用
rand7()
且不能调用其他方法。请不要使用系统的 Math.random()
方法。每个测试用例将有一个内部参数
n
,即你实现的函数 rand10()
在测试时将被调用的次数。请注意,这不是传递给 rand10()
的参数。用随机来模拟随机
拒绝采样方法

万能构造法
randA()
构造randB()
时,需要找一个最大质因子不超过 A 的数 n (n>=B),然后对 n 分解质因子就能找到每个采样需要取多少种结果。实际到具体数字时,可以把部分质因子合并成不超过 A 的数,从而减少采样次数。
例如:10,可以分解为 2,5都是小于 7 的最大质因子。
100 可以分解为 4,4,5;