combinaisons d'un tableau de membres de tableau java (lancer de dés?)


Vraiment désolé de ne pas écrire où je suis, car je n'ai aucune idée de comment commencer et je n'ai pas eu de chance de chercher.

Par exemple si j'ai

int [][]={{1,2,3},              //possible states of 1 member
          {10,20,30},           //possible states of 2 member
          {100,200,300}}        //possible states of 3 member

Je dois définir le nombre k de tableaux de membres de combinaison, puis obtenir le résultat de la manière, que j'obtiens toutes les combinaisons possibles de leurs états. Donc, fondamentalement, si le k est 2:

member(1st array)1 - member2
member1 - member3 
member2 - member3

Puis obtenir des combinaisons de tous les états possibles de ces membres, que les membres ne peuvent pas combiner les uns avec les autres.

Vous pouvez imaginer avoir 3 dés (dans ce cas tous les 3 côtés ) et je veux obtenir toutes les combinaisons possibles que j'obtiens en lançant toutes les paires de dés possibles (dice1 + dice2 est le même que dice2 + dice1, donc je ne veux pas cela). Je ne sais pas combien de dés j'aurai et combien de côtés j'aurai.

Tous les pointeurs, conseils de départ ou quoi que ce soit est très apprécié, merci

Author: Jos Angel George, 2015-10-04

1 answers

Pour commencer, vous pouvez faire quelque chose comme cela. Juste une solution, pas si grande dans la complexité du temps.

    for(int i=0; i < x.length; i++){  // Selects one dice
        for(int j = i + 1; j < x.length; j++){  // Select another dice
            for(int k=0; k<x[i].length; k++){  // selects face of first dice
                for(int l=0; l<x[j].length; l++){  // select face of 2nd dice
                    System.out.print("Dice " + i + " Face " + k + " vs Dice " + j + " Face " + l);
                    System.out.println(" ==> " + x[i][k]+ " - " + x[j][l]);
                }
            }
        }
    }
 0
Author: Jos Angel George, 2015-10-04 16:48:04