【发布时间】:2019-06-22 20:40:56
【问题描述】:
我有两个骰子,用户可以在其中选择面数。我想编写一个代码来输出最有可能的结果。例如,如果用户选择了 2 个 6 面骰子,那么结果应该是 7。但是如果用户选择了 1 个 3 面骰子和 1 个 4 面骰子,那么输出应该是 4 和 5。我看过你计算的例子每个不同的总和在不同循环中的可能性有多大,但我想知道是否有更简单的方法,因为我只关心最有可能的总和,而不是所有总和。
任何建议或帮助将不胜感激!
编辑。由于有人抱怨需要阅读不必要的代码,因此打印出我所做的所有不同尝试并不值得赞赏,因此我会将您链接到我尝试过的不同示例,但随后删除,因为它们似乎对我的问题来说太长了. https://coderanch.com/t/517923/java/Dice-probability-program-nested-loops 我意识到该示例不适合,因为这需要我无法确定的滚动数量。然后我尝试通过使用 while 循环简单地尝试所有不同的可能组合,但我被困在中间,因此选择不使用它。
现在我只有:
Scanner scanner = new Scanner (System.in);
while (scanner.hasNextInt()) {
int x,y;
x=scanner.nextInt();
y=scanner.nextInt();
if (x==y) {
int z = x+1;
System.out.println(z)
} else {
int z= ((x+y)/2)+1;
System.out.println(z);
}
}
问题:如果有两个不同数量的面,变量 z 只打印出总和中同样可能出现的一个。
【问题讨论】:
-
dice这个词已经是die的复数形式。只是想纠正你的语法。 -
你已经尝试过什么代码?
-
严格来说,只返回 5 是解决您的问题的最简单和正确的答案。您想计算不同数量的边数和/或骰子的结果吗?
-
我希望用户能够选择两个骰子的边数,所以我想计算最可能的结果,因为每个用户输入的结果都不同!
-
@a.e.m.n 如果您希望输出为“4 和 5”,您应该以不同的方式表达您的问题。就目前而言,4 或 5 都是正确答案。