我想列出以下类型的 3 个值(二进制符号!):
0;0;0
1;0;0
0;1;0
11;0;0
10;1;0
.
.
.
1111111111;0;0
0;1111111111;0
0;0;1111111111
以及介于两者之间的所有缺失值
此列表意味着:所有列都必须具有所有值(排列?),但前提是该位未在另一列中设置
这是将 10 个可标记的东西放入 3 个不同的盒子的问题
我尝试了 3 个循环,但我总是把它搞砸 :( 这就是我到目前为止所拥有的:
import java.io.FileNotFoundException;
import java.math.BigInteger;
public class create_referencevalues {
/**
* @param args
*/
public static void main(String[] args) {
Long[] list = { 10L, 40L, 90L, 160L, 250L, 350L, 500L, 650L,800L,1000L };
try {
java.io.PrintStream p = new java.io.PrintStream(
new java.io.BufferedOutputStream(
new java.io.FileOutputStream(new java.io.File(
"C:/users/djdeejay/listall.csv"), false)));
for (Integer i = 0; i < 1024; i++) {
Long sum1 = 0L;
for (Integer j = 0; j < 10; j++) {
if (BigInteger.valueOf(i).testBit(j)) {
sum1 += (list[j]);
}
}
sum1 *= Integer.bitCount(i);
Long sum2 = 0L;
for (int j = 0; j < 10; j++) {
if (BigInteger.valueOf(1023 - i).testBit(j)) {
sum2 += (list[j]);
}
}
sum2 *= 10-Integer.bitCount(i);
p.println(i +";"+ Long.toBinaryString(i)+";" + sum1+";"+ Long.toBinaryString(1023-i)+";"+sum2);
}
p.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
我如何集成一个循环给我第三行和行之间的所有排列?谢谢你的帮助