题
如何随机化配对的顺序?例如我有 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 =同样生成另一个随机数。
- 然后打印列表。get(i)+“ - ”+list.get(j)
您可以在循环中执行此操作,并添加条件来验证由此生成的一对是否是重复的。
我假设您知道如何生成某些数字之间的随机数。
你可以做类似的事情 (Math.random() * 1000)%3
不隶属于 StackOverflow