我需要创建一个函数,输出所有可能的二进制组合(2^8==256个不同的8位序列)。我真的被难住了。我必须用嵌套循环来完成它,但我不知道该怎么做。下面是我到目前为止所尝试的。有人告诉我,我可以用8个嵌套循环来编写这个程序,每个循环从0到1;另外,我可以尝试用位操作操作符来实现这一点。
输出应该如下所示:
00000000
00000001
public static void outputBinary(){
int[][][][][][][][] num = new int[2][2][2][2][2][2][2][2];
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
for (int k = 0; k < 2; k++){
for (int l = 0; l < 2; l++){
for (int m = 0; m < 2; m++){
for (int n = 0; n < 2; n++){
for (int o = 0; o < 2; o++){
for (int p = 0; p < 2; p++){
System.out.print(num[i][j][k][l][m][n][o][p]);
} }}}}}}}
谢谢你找我。
不需要数组。下面是对您的代码的轻微修改,它将输出所有的排列。
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
for (int k = 0; k < 2; k++){
for (int l = 0; l < 2; l++){
for (int m = 0; m < 2; m++){
for (int n = 0; n < 2; n++){
for (int o = 0; o < 2; o++){
for (int p = 0; p < 2; p++){
System.out.println("" + i + j + k + l + m + n + o + p);
}
}
}
}
}
}
}
}
必须使用嵌套循环吗?因为只要利用从0到255的所有数字的二进制表示涵盖了每个排列,这就非常容易了。
for (int i=0; i<256; i++) {
System.out.println(Integer.toBinaryString(i));
}
我试图在一个形状为(n,10)的数组中创建所有可能的0和1的组合。例如,如果我们假设一个像这样的任意组合:np.array([0,0,1,1,0,0,1,1,0,0]),我如何生成所有可能的组合(这将产生2^10=1024数组)?
问题内容: 在Python中,如何获取二进制值和的所有组合? 例如,如果我想要 我怎样才能做到这一点? 问题答案: 采用 这将产生一个元组列表(请参阅此处) 您可以轻松地将其更改为使用变量: 如果需要列表列表,则可以使用该功能(感谢@Aesthete)。 或在Python 3中: 请注意,使用或列表理解意味着您无需将产品转换为列表,因为它将迭代对象并产生一个列表。
我正在做一个代码,可以消除不需要的组合,例如我(ABCDE)不想要AAA BBB AB BA只想要ABC ABD ABE ....等等,希望它在任何情况下都有效,我这样做的示例代码:他制作了一组组合 (1-6) 3 对 3 ...但我希望他 (1-15) 与 4 对 4 或 10 到 10 的组合......请参阅示例以更好地理解。 结果 123 124 125 126 134 135 136 1
问题内容: 目前,我试图让所有可能的组合从的,是每一个元素只包含一个字母。 在本身包含相同字母两次甚至更多,他们只应该,因为他们经常会出现使用。 在稍后应该含有最多的给定的长度从最小的2个字母的所有组合。 我在此处搜索了stackoverflow,但只发现了忽略以下事实的置换函数:每个字母仅在出现时才经常使用。 这是我的第一个Swift 2项目,所以请原谅我的绿色态度:) 我想要的是 我目前的做法
问题内容: 我有一个项目{a,b,c,d}的列表,当我需要生成所有可能的组合时, 您可以选择任意数量的项目 顺序不重要(ab = ba) 空集不被考虑 如果我们抓住可能性,那就应该是 我使用了以下递归方法: 当数组大时,有没有更有效的方法? 问题答案: 将组合视为一个二进制序列,如果所有4个都存在,则得到1111,如果缺少第一个字母,则得到0111,依此类推。对于n个字母,我们将得到2 ^ n -