Реализация механизма вывода в Java - PullRequest
2 голосов
/ 14 мая 2011

Я пытаюсь придумать алгоритм, в котором я могу создать число возможных двоичных комбинаций для реализации моего механизма вывода. Короче говоря,

, если во входном файле моей программы есть 4 различные переменные, которые моя программа должна иметь возможность сгенерировать

0000 0001 0010.,,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));
            }
        }

    }
}

Спасибо за любую помощь ....

Ответы [ 2 ]

4 голосов
/ 14 мая 2011

Это должно сработать ...

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" или любой другойхочу позвонить.

1 голос
/ 14 мая 2011

См. Увеличение значений массива - Arduino для очень простого решения.

...