470.用Rand7()實現Rand10()
阿新 • • 發佈:2018-12-07
已有方法 rand7
可生成 1 到 7 範圍內的均勻隨機整數,試寫一個方法 rand10
生成 1 到 10 範圍內的均勻隨機整數。
不要使用系統的 Math.random()
方法。
示例 1:
輸入: 1 輸出: [7]
示例 2:
輸入: 2 輸出: [8,4]
示例 3:
輸入: 3 輸出: [8,1,10]
提示:
rand7
已定義。- 傳入引數:
n
表示rand10
的呼叫次數。
進階:
rand7()
呼叫次數的- 你能否儘量少呼叫
rand7()
?
// The rand7() API is already defined for you.
// int rand7();
// @return a random integer in the range 1 to 7
class Solution {
public:
int rand10() {
while (true) {
int num = (rand7() - 1) * 7 + rand7();
if (num <= 40) return num % 10 + 1;
}
}
};