有许多方法可以在Java中存储二进制数据,目前还不清楚,您想要存储什么.如果你想存储N个翻转的所有可能组合,那么你需要和数组新布尔[2 ^ N] [N]
请记住,Java有另一种提升权力的语法.
UPDATE
以下是存储N翻转的所有组合的代码.
从中您将了解如何生成一个组合:从组合序号的二进制表示.看评论.
// number of flips
// limit it by 31
int N = 3;
// number of combinations
// using bitshift to power 2
int NN = 1<
// array to store combinations
boolean flips[][] = new boolean[NN][N];
// generating an array
// enumerating combinations
for(int nn=0; nn
// enumerating flips
for( int n=0; n
// using the fact that binary nn number representation
// is what we need
// using bitwise functions to get appropriate bit
// and converting it to boolean with ==
flips[nn][N-n-1] = (((nn>>n) & 1)==1);
// this is simpler bu reversed
//flips[nn][n] = (((nn>>n) & 1)==1);
}
}
// printing an array
for(int nn=0; nn
System.out.print("" + nn + ": ");
for( int n=0; n
System.out.print(flips[nn][n]?"T ":"F ");
}
System.out.println("");
}