次の種類の 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();
}
}
}
3行目と行間のすべての順列を与えるループを統合するにはどうすればよいですか? 助けてくれてありがとう