我有以下Java任务。在棋盘游戏中,我可以掷出6面骰子并向前移动相同数量的空间。如果目标是远离起点的“n”个空格,我该如何实现一个程序来计算所有可能的方法来准确到达" n"?我挤压了我的头,但我无法找到解决方案,我已经搜索了网,但没有什么是我想要的。我知道这并不难,我无法找到正确的方法。
提前致谢。
答案 0 :(得分:2)
有多种方法可以做到这一点,所以我要保持它的通用性。 确定所有可能的排列,存储值。生成一个卷,获得总数。筛选与总数匹配的排列。
class Roll {
int first;
int second;
int total;
public Roll(int first, int second) {
this.first = first;
this.second = second;
this.total = first + second;
}
List<Roll> permutations = new ArrayList<>();
for (int ii = 1; ii < 7; ii++)
for (int jj = 1; jj < 7; jj++)
permutations.add(new Roll(ii,jj);
roll the dice, determine the total;
now loop through the permutations to find the
total matching the roll total. These are your combinations.
This solution doesn't handle duplicate rolls. For example 1,6 and 6,1;