Java 排列组合问题

2022 年 5 月 27 日
 JulianEpoch

两个数(0 和 1)5 位长度, 怎么获取所有组合列表数组

java 如何实现, 有第三方库可以直接调用吗(手动狗头)

1806 次点击
所在节点    算法
6 条回复
F281M6Dh8DXpD1g2
2022 年 5 月 27 日
两个 for 循环完事
nitmali
2022 年 5 月 27 日
int num = (int)Math.pow(2, 5);
for (int i = 1; i < num; i++) {
System.out.println(Integer.toBinaryString(i) );
}
nitmali
2022 年 5 月 27 日
@nitmali 改下从 i 从 0 开始,不足五位前面补 0
JulianEpoch
2022 年 5 月 27 日
@nitmali #3 可以 感谢
JulianEpoch
2022 年 5 月 27 日
我刚想到的, 写法有点菜
int[][] arr = new int[(int) Math.pow(2,5)][5];
int point = 0;
for (int i = 0; i < 2; i++) {
for (int i1 = 0; i1 < 2; i1++) {
for (int i2 = 0; i2 < 2; i2++) {
for (int i3 = 0; i3 < 2; i3++) {
for (int i4 = 0; i4 < 2; i4++) {
arr[point++] = new int[]{i, i1, i2, i3, i4};
}
}
}
}
}
nitmali
2022 年 5 月 27 日
@dabai0806 直接转成二进制就可以了 比如 0 -> "00000"; 1 => "00001"; 2 -> "00010";..... 2^5 - 1 -> "11111"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/855610

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX