【发布时间】:2019-10-24 20:16:55
【问题描述】:
我正在编写一个程序来掷 4 个 6 面骰子,并用它们做一些简单的数学和逻辑运算。我正在运行一个非常粗略的程序草稿,并开始注意到滚动的数量会不一致。特别是我有时不会得到最小值或得到两个
如果在网上四处寻找解决方案无济于事。我什至从其他示例中复制了有关如何找到最小值的代码
public class test {
private static int dice(int s) {
int num = 0;
Random random = new Random();
num = random.nextInt(s);
num = num + 1;
return num;
}
public static void main(String[] args) {
List<Integer> rolls = new ArrayList<Integer>();
for (int i = 0; i != 4; i++) {
rolls.add(dice(6));
}
for (Integer roll : rolls) {
System.out.println(roll);
}
int min = rolls.get(0);
int index = 0;
for (int x = 0; x < rolls.size(); x++) {
if (rolls.get(x) < min) {
min = rolls.get(x);
index = x;
System.out.println("Smallest: " + min);
}
}
int sum = 0;
for (int x : rolls) {
sum += x;
}
System.out.println("Sum:" + sum);
}
}
这应该会生成 4 卷 6 面骰子。然后它应该找到最小值打印,然后计算总和并打印它
【问题讨论】:
-
“有时不会得到最小值或得到两个”是什么意思?你能展示一些具体的预期和意想不到的输出吗?第一个猜测是将
System.out.println("Smallest: " + min);移出循环。 -
为什么每次调用
dice()时都要重新初始化random?