2

推論エンジンの実装のために可能なバイナリの組み合わせをいくつも作成できるアルゴリズムを考えようとしています

つまり、プログラムへの入力ファイルに4つの異なる変数がある場合、プログラムは生成できるはずです。

000000010010。。。1111

組み合わせ....これまでのところ、この問題への私のアプローチは以下のとおりです。これは、現時点ではハードコーディングされているため、単なる考えです...基本的に、任意の数の変数「n」に対してこれを生成するアルゴリズムが必要です。

これまでの私のコード...

public class TTAlgorithm {

    public static void main(String[] args) {
        Integer j = new Integer(10);

        for (int i = 0; i < 4096; i++) {
            if (j.toBinaryString(i).length() == 1) {
                System.out.println("0000000000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 2) {
                System.out.println("000000000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 3) {
                System.out.println("00000000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 4) {
                System.out.println("0000000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 5) {
                System.out.println("000000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 6) {
                System.out.println("00000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 7) {
                System.out.println("0000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 8) {
                System.out.println("000" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 9) {
                System.out.println("00" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 10) {
                System.out.println("0" + j.toBinaryString(i));
            }

            if (j.toBinaryString(i).length() == 11) {
                System.out.println("" + j.toBinaryString(i));
            }
        }

    }
}

助けてくれてありがとう....

4

2 に答える 2

4

これはうまくいくはずです...

public static void main(String[] args) throws Exception {
        int count = 0;

        int stringSize = 4;
        int maxValue= (int)Math.pow(2, stringSize);

        while(count < maxValue) {
            String binaryString = Integer.toBinaryString(count);

            while(binaryString.length() < stringSize) {
                binaryString = "0" + binaryString;
            }

            System.out.println(binaryString);
            count++;
        }

    }

出力は...

0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

それをメソッドに入れて、メソッドに引数「stringSize」またはそれを呼び出したいものをとらせます。

于 2011-05-14T18:29:17.157 に答える
1

非常に簡単な解決策については、配列値のインクリメント-Arduinoを参照してください。

于 2011-05-14T18:37:45.023 に答える