package sort;
import java.util.Arrays;
public class Test38_3 {
public static void main(String[] args) {
PL("ABCEFGHI");
}
public static void PL(String str) {
char[] ch = str.toCharArray();
int[] ii = { 1, 2, 3, 1, 2, 3, 2, 2 };
PL(ii, 0);
}
private static void PL(int[] ch, int i) {
if (i >= ch.length - 1) {
Check(ch);
}
for (int j = i; j < ch.length; j++) {
int temp = ch[i];
ch[i] = ch[j];
ch[j] = temp;
PL(ch, i + 1);
temp = ch[i];
ch[i] = ch[j];
ch[j] = temp;
}
}
private static void Check(int[] ch) {//判断本次排序是否符合条件
// TODO Auto-generated method stub
if (ch[0] + ch[1] + ch[2] + ch[3] == ch[4] + ch[5] + ch[6] + ch[7]
&& ch[0] + ch[2] + ch[4] + ch[6] == ch[1] + ch[3] + ch[5]
+ ch[7]
&& ch[0] + ch[1] + ch[4] + ch[5] == ch[2] + ch[3] + ch[6]
+ ch[7]) {
System.out.println(Arrays.toString(ch));
}
}
}
本文展示了一个使用Java实现的排列组合算法,并通过一个具体的示例来演示如何筛选出符合特定条件的所有可能组合。该算法首先生成所有可能的整数数组排列,然后检查每个排列是否满足预定义的数学条件。

1341

被折叠的 条评论
为什么被折叠?



