我有两个骰子,用户可以选择其中的面孔数量。我想编写代码以输出最可能的结果。例如,如果用户选择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仅打印出总和之一,而可能性相等。
答案 0 :(得分:1)
令a和b为边数,并假设a小于(或等于)b。然后,a + 1和b + 1之间的所有和都具有相同的(a /(a + b)的可能性),并且该可能性也是最大的。您要如何在代码中返回此值取决于您。