【问题标题】:Inference Engine implementation in javajava中的推理引擎实现
【发布时间】:2011-05-14 18:11:36
【问题描述】:

我正在尝试一种算法,我可以为我的推理引擎实现创建许多可能的二进制组合

简而言之,如果我的程序的输入文件有 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));
            }
        }

    }
}

感谢您的帮助....

【问题讨论】:

    标签: java binary combinations bit inference


    【解决方案1】:

    这应该可以...

    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”或任何你想调用的参数。

    【讨论】:

    • 我尝试了两次...但我不能,因为我的声誉低于 15,但我会确定一旦我超过 15...感谢您救了我的命哈哈...快乐编码
    • +1 请注意@gshauger 如何将代码的重复部分分解出来并将其放入循环中。他还为静态方法Integer.toBinaryString() 使用了类引用。
    • 是的,我读过!这确实很有帮助,是的,我习惯使用 Integer.parseInt() 等方法,但我试图实现某些目标,但没有编辑我的代码,哈哈……但我牢记这一点,谢谢
    【解决方案2】:

    请参阅Incrementing array values - Arduino 以获得非常简单的解决方案。

    【讨论】:

    • 感谢您的回答,这很有趣...我可能会为我的其他工作实现它。
    猜你喜欢
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    相关资源
    最近更新 更多