/*
* @lc app=leetcode.cn id=470 lang=javascript
*
* [470] 用 Rand7() 实现 Rand10()
*/
// @lc code=start
/**
* 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 num = (rand7() - 1) * 7 + rand7();
if (num <= 40) {
return (num - 1) % 10 + 1
}
}
};
// @lc code=end
// 取模运算 (num-1) % 10 + 1 是唯一能保证严格均匀分布的方法
// (rand_X() - 1) × Y + rand_Y() ==> 可以等概率的生成[1, X * Y]范围的随机数