【剑指offer】用 Rand7() 实现 Rand10()
题目
已有方法 rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10 生成 1 到 10 范围内的均匀随机整数。
不要使用系统的 Math.random() 方法。
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/implement-rand10-using-rand7
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
我的答案
/**
* The rand7() API is already defined for you.
* var rand7 = function() {}
* @return {number} a random integer in the range 1 to 7
*/
var rand10 = function () {
while (true) {
const a = rand7();
const b = rand7();
const c = a + (b - 1) * 7;
if (c <= 40) {
return (1 + (c - 1) % 10);
}
}
};
拒绝采样法。
标题:【剑指offer】用 Rand7() 实现 Rand10()
作者:limanting
地址:https://blog.manxiaozhi.com/articles/2021/10/03/1633252513877.html