数字1到5,组成5位数有多少种排列方法,请详

2025-03-04 08:59:16
推荐回答(3个)
回答1:

排列组合中的不重复问题。

套用公式即可:

回答2:

我把算法用 java 给你写出来,运行结果:120 种不同组合.
import java.util.ArrayList;
import java.util.Comparator;
import java.util.TreeSet;
public class Test {
private static TreeSet> ts = new TreeSet>(
new Comparator>() {
public int compare(ArrayList o1, ArrayList o2) {
Integer[] a = new Integer[o1.size()];
Integer[] b = new Integer[o2.size()];
o1.toArray(a);
o2.toArray(b);
int i = a[0] - b[0];
int i1 = i == 0 ? a[1] - b[1] : i;
int i2 = i1 == 0 ? a[2] - b[2] : i1;
int i3 = i2 == 0 ? a[3] - b[3] : i2;
int i4 = i3 == 0 ? a[4] - b[4] : i3;
return i4;
}
});
public static void main(String[] args) {
ArrayList al = new ArrayList();
for (int i = 1; i < 6; i++) {
al.add(i);
}
huan(al, 0);
for (ArrayList al2 : ts) {
for (Integer ii : al2)
System.out.print(ii + " ");
System.out.println();
}
System.out.println("共计算" + ts.size() + "次");
}
private static void huan(ArrayList al, int i) {
Integer[] baoliu = new Integer[al.size()];
Integer[] num = new Integer[al.size()];
Integer[] newal = new Integer[al.size()];
al.toArray(newal);
int b = 0;
Integer it = 0;
for (; b < i; b++) {
baoliu[b] = newal[b];
}
for (int x = 0; b < al.size(); b++) {
num[x++] = newal[b];
}
for (int y = 0; y < (al.size() - i); y++) {
it = num[0];
int j = 1;
ArrayList al1 = new ArrayList();
for (int x = 0; j < num.length; x++, j++) {
num[x] = num[j];
}
num[j - 1] = it;
if (baoliu[0] != null)
for (int x = 0; baoliu[x] != null; x++)
al1.add(baoliu[x]);
for (int x = 0; x < num.length; x++)
if (num[x] != null)
al1.add(num[x]);
ts.add(al1);
if (i <= al.size() - 2)
huan(al1, i + 1);
}
}
}

回答3:

万位有5个数字可以选择,千位就剩下4个,百位3个,十位2个,个位1个
因此
5×4×3×2×1=120种