Вопрос

Как я могу рандомизировать порядок пар? например У меня есть 3 элемента, хранящихся в списке, например. A, B, C - > который делает пары A-B, A-C, B-C.

Как я могу отобразить пару в случайном порядке? например A-B, A-C, B-C или B-C, A-B, A-C или 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);

ДРУГОЙ КЛАСС

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);
    }
   }
Это было полезно?

Решение

Collections.shuffle(pairsX);

Другие советы

Я просто предоставляю вам псевдокод. Скажем, у вас есть три элемента в списке.

<Ол>
  • i = Создать случайное число от 0 до list.size () -1
  • j = Аналогичным образом создайте другое случайное число.
  • Затем напечатайте list.get (я) + & Quot; - & Quot; + list.get (к)

    Вы можете сделать это в цикле и добавить условия, чтобы проверить, является ли созданная пара дубликатом.

    Я предполагаю, что вы знаете, как генерировать случайное число между определенными числами ..

    Вы можете сделать что-то вроде (Math.random () * 1000)% 3

  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top