我需要一个能够生成骰子卷的所有可能组合的java程序。骰子的数量和骰子的面数可能会有所不同。 例如。 3个六面骰子的组合可以如下。 111 112 113 114 115 116 121 122 123 124 125 126 ...等等......直到666。 任何帮助??? 某种
public Map generatePossibleNumbers(int face, int numberOfDice){
// generate numbers and return map
Map generatedMap=new HashMap();
return generatedMap;
}
提前致谢
答案 0 :(得分:1)
我建议您使用Collection
而不是Map
,因为您不需要存储Key-Value
对。
这就是我提出的:
public static void diceRoll(int dice, int numberOfDice) {
Deque<Integer> list = new ArrayDeque<>(dice);
diceRoll(dice, numberOfDice, list); // initially we have chosen nothing
}
// Private recursive helper method to implement diceRoll method.
// Adds a 'list' parameter of a list representing
private static void diceRoll(int dice, int numberOfDice, Deque<Integer> list) {
if (dice == 0) {
// Base Case: nothing left to roll. Print all of the outcomes.
System.out.println(list);
} else {
// Recursive case: dice >= 1.
for (int i = 1; i <= numberOfDice; i++) {
list.addLast(i); // choose
diceRoll(dice - 1, numberOfDice, list); // explore
list.removeLast(); // un-choose
}
}
}