Question

Comment puis-je randomiser l'ordre des paires? par exemple. J'ai 3 éléments stockés dans la liste, par exemple. A, B, C - > qui fait des paires de A-B, A-C, B-C.

Comment puis-je afficher la paire dans un ordre aléatoire? par exemple. A-B, A-C, B-C ou B-C, A-B, A-C ou A-C, A-B, B-C

ArrayList<String> s = new ArrayList<String>();
  s.add("A");
  s.add("B");
  s.add("C");

ListGenerator lg = new ListGenerator(s);

AUTRE CLASSE

public class ListGenerator {

  private ArrayList<String> pairsX= new ArrayList<String>();

  public ListGenerator(ArrayList<String> list) {
    int size = list.size();
    int count_pairs = 0;

    // create a list of all possible combinations
    for(int i = 0 ; i < size ; i++)
    {
       String s1 = ""+i;
       for(int j = (i+1) ; j < size ; j++)
       {
          count_pairs++;
          String s2 = ""+j;
          pairsX.add(s1+","+s2);
       }
    }

    System.out.println("numPairs "+count_pairs);
    for(String s : pairsX) {
       System.out.println(s);
    }
   }
Était-ce utile?

La solution

Collections.shuffle(pairsX);

Autres conseils

Je vous fournis simplement le pseudo-code. Supposons que vous ayez trois éléments dans la liste.

  1. i = Générer un nombre aléatoire compris entre 0 et list.size () -1
  2. j = Générez un autre nombre aléatoire de la même manière.
  3. Puis imprimez list.get (i) + "-" + list.get (j)

Vous pouvez le faire en boucle et ajouter des conditions pour vérifier si le couple ainsi généré est un doublon.

Je suppose que vous savez comment générer un nombre aléatoire entre certains nombres ..

Vous pouvez faire quelque chose comme (Math.random () * 1000)% 3

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top