












已有方法rand7 可生成 1 到 7 范围内的均匀随机整数,试写一个方法 rand10生成 1 到 10 范围内的均匀随机整数。
不要使用系统的Math.random()方法
rand7 已定义。n 表示 rand10 的调用次数。在线评测地址:LintCode 领扣
样例 1:
输入:1
输出:[7]
样例 2:
输入:2
输出:[8,4]
样例 3:
输入:3
输出:[8,1,10]
[题解]
考点:
题解:
public class Solution extends SolBase{
public int rand10() {
while(true){
int rand49 = (rand7() - 1) * 7 + rand7() - 1;
if(rand49 <= 39) {
return rand49 / 4 + 1;
}
}
}
}
更多语言代码参见:九章算法
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。