【发布时间】:2015-10-03 03:38:21
【问题描述】:
这是参考实现,我不明白为什么在这里选择21?谢谢。
public static int rand7() {
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 21) return (num % 7 + 1);
}
}
顺便说一句,我在提问之前阅读了这个问题,我的具体问题是为什么在这里使用 21。在那个线程中,它没有被回答。如果我遗漏了什么,请随时纠正。谢谢。 :) 提前致谢, 林
【问题讨论】:
-
这不是python,而是java。无论如何,这是Expand a random range from 1–5 to 1–7的副本
-
@smci,我在提问之前阅读了这个问题,我的具体问题是为什么在这里使用 21。在那个线程中,它没有被回答。如果我遗漏了什么,请随时纠正。谢谢。 :)
-
我不知道,但在另一个问题中,他们正在生成一个 if (num < 21) ... 应该是
>= 21。如果您说明此问题的来源,将会有所帮助。 -
这不是生成随机数
-
@LinMa 因为
rand(5)-1产生一个以 5 为底的数字,所以他们将其乘以 5 使其成为 5s 的单位