父母B2延期后,提前回国的问题 (转载)# EB23 - 劳工卡
n*e
1 楼
Write a method to generate a random number between 1 and 7, given a method
that generates a random number between 1 and 5 (i.e., implement rand7()
using rand5()).
给出的解是:
public static int rand7() {
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 21) return (num % 7 + 1);
}
}
想问一下为什么这么做是对的?
如果这样写对吗?
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 7) return (num + 1);
}
或者
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
或者
while (true) {
int num = 4 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
多谢大牛指教!
that generates a random number between 1 and 5 (i.e., implement rand7()
using rand5()).
给出的解是:
public static int rand7() {
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 21) return (num % 7 + 1);
}
}
想问一下为什么这么做是对的?
如果这样写对吗?
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 7) return (num + 1);
}
或者
while (true) {
int num = 5 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
或者
while (true) {
int num = 4 * (rand5() - 1) + (rand5() - 1);
if (num < 14) return (num % 7 + 1);
}
多谢大牛指教!