문제

쌍의 순서를 어떻게 무작위로 만들 수 있습니까? 예를 들어 목록에 저장된 3 가지 요소가 있습니다. 예를 들어 A, B, C->는 AB, AC, BC의 쌍을 만듭니다.

쌍을 임의 순서로 어떻게 표시 할 수 있습니까? EG AB, AC, BC 또는 BC, AB, AC 또는 AC, AB, BC

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);

다른 팁

나는 단지 당신에게 의사 코드를 제공하고 있습니다. 목록에 세 가지 항목이 있다고 가정 해 봅시다.

  1. i = 0에서 list.size () 사이에 임의 숫자를 생성합니다.
  2. J = 다른 임의 숫자를 비슷하게 생성합니다.
  3. 그런 다음 list.get (i)+"-"+list.get (j)

루프 에서이 작업을 수행하고 조건을 추가하여 이렇게 생성 된 쌍이 중복인지 확인하십시오.

특정 숫자 사이에 난수를 생성하는 방법을 알고 있다고 가정합니다 ..

당신은 (math.random () * 1000)%3을 할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top