문제
쌍의 순서를 어떻게 무작위로 만들 수 있습니까? 예를 들어 목록에 저장된 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);
다른 팁
나는 단지 당신에게 의사 코드를 제공하고 있습니다. 목록에 세 가지 항목이 있다고 가정 해 봅시다.
- i = 0에서 list.size () 사이에 임의 숫자를 생성합니다.
- J = 다른 임의 숫자를 비슷하게 생성합니다.
- 그런 다음 list.get (i)+"-"+list.get (j)
루프 에서이 작업을 수행하고 조건을 추가하여 이렇게 생성 된 쌍이 중복인지 확인하십시오.
특정 숫자 사이에 난수를 생성하는 방법을 알고 있다고 가정합니다 ..
당신은 (math.random () * 1000)%3을 할 수 있습니다.
제휴하지 않습니다 StackOverflow