首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >推理引擎在java中的实现

推理引擎在java中的实现
EN

Stack Overflow用户
提问于 2011-05-15 02:11:36
回答 2查看 629关注 0票数 2

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

简而言之,如果我的程序的输入文件有4个不同的变量,我的程序应该能够生成

00000 0001 0010。。。1111

组合...到目前为止,我对这个问题的解决方法如下所示,这只是一个想法,因为它目前是硬编码的……基本上,我需要算法来生成任何给定数量的变量"n“。

到目前为止我的代码...

代码语言:javascript
复制
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));
            }
        }

    }
}

谢谢你的帮助..。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-15 02:29:17

这应该行得通。

代码语言:javascript
复制
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++;
        }

    }

输出是...

代码语言:javascript
复制
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

将其放入一个方法中,并让该方法接受一个参数"stringSize“或任何您想调用它的参数。

票数 4
EN

Stack Overflow用户

发布于 2011-05-15 02:37:45

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6003853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档