【发布时间】:2017-02-18 03:57:34
【问题描述】:
有没有办法使如果 randNumber 的输出低于 75,则 randNumber 的输出将变为低于 85 的数字?就像随机数生成器选择 75 作为第一个数字一样,有一种方法可以将之后其余输出的值更改为低于 85(现在设置的值)。
public static void Hypothetical() {
int x;
for (x = 0; x <= 4; x++) {
Random z = new Random();
int zNumber = z.nextInt(10-5) + 5;
Random rand = new Random();
int randNumber = rand.nextInt(85-65) + 65;
if (x == 0) {
System.out.println("You may begin running.");
//TimeUnit.SECONDS.(2);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (x == 1 ) {
System.out.println("Your first lap was made in " + randNumber + " seconds");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (x==2) {
System.out.println("Your second lap was made in " + (randNumber + zNumber) + " seconds");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (x==3) {
System.out.println("Your third lap was made in " + (randNumber + zNumber) + " seconds");
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
if (x==4) {
System.out.println("Your final lap was made in " + (randNumber + zNumber) + " seconds");
}
}
}
}
【问题讨论】:
-
你不能在循环内重新生成/重新分配 zNumber 和 randNumber 吗?
-
您是否真的需要每次都不同的数字,或者如果它们大部分时间都不同也可以吗?如果您要使用
rand.nextInt(20)生成一个随机数序列,那么任何数字都有 1/20 的机会与前一个数字相同。如果您想确保它们都不同,则需要不同的算法。 -
请不要通过编辑来完全重写这样的问题,因为这会使其他人已经写过的 cmets 和答案看起来很愚蠢。最好删除并提出一个新问题。但是,目前还不清楚您要完成什么。