/**
* integer arr be divided into pairs
* return pairs number depend on
* parameter k : key is a factor of pairs sum multiply element
* constraints
* 2<=n<=100 arr size
* 1<=k<=100 multiply element factor
* 1<=ar[i]<=100 arr element value
*
* @param n
* @param k
* @param ar
* @return
*/
public static int divisibleSumPairs(int n, int k, List<Integer> ar) {
if (n < 2 || n > 100) {
return 0;
}
if (k < 1 || k > 100) {
return 0;
}
if (ar == null) {
return 0;
}
if (ar.isEmpty()) {
return 0;
}
Random random = new Random();
int count = 0;
ArrayList<String> stringArrayList2 = new ArrayList<>();
while (true) {
int arrIndex = random.nextInt(ar.size());
int arrIndexNextSeeds = random.nextInt(ar.size());
if (!(arrIndexNextSeeds == arrIndex)) {
Integer i = ar.get(arrIndex);
Integer i1 = ar.get(arrIndexNextSeeds);
stringArrayList2.add(arrIndex+"-"+arrIndexNextSeeds+"-"+i+"-"+i1);
}
count++;
if (count > 1000000) {
break;
}
}
HashSet<String> stringHashSet = new HashSet<>();
for (String s : stringArrayList2) {
stringHashSet.add(s);
}
ArrayList<String> stringArrayList1 = new ArrayList<>();
for (String e : stringHashSet) {
String[] split = e.split("-");
String s2 = split[2];
String s3 = split[3];
int i = Integer.valueOf(s2) + Integer.valueOf(s3);
int i1 = i % k;
if (i1 == 0) {
stringArrayList1.add(e);
}
}
return stringArrayList1.size()/2;
}
posted on 2025-05-17 17:05  CoderOilStation  阅读(13)  评论(0)    收藏  举报