java - 我的数组生成算法坏了

标签 java arrays algorithm

我正在开发一个程序,为此我需要一个数组生成算法,但是,即使代码应该 工作,所有条目都完全相同,如 System.out.println(); 接近代码末尾。

我检查了其余代码的每一部分,一切运行顺利,只是这个算法,我似乎无法理解。

public static ZetaTestTriple[] getTripleArray(int jRange, int kRange, int nRange, MathContext mc){
    ZetaTestTriple[] r = new ZetaTestTriple[(8*(jRange+1)*(kRange)*nRange)];
    int i=0;
    for(int j=0;j<jRange+1;j++){
        for(int k=1;k<kRange;k++){
            for(int n=1;n<nRange+1;n++){
                System.out.println("j="+j+"||k="+k+"||n="+n);
                r[i+0]=new ZetaTestTriple(j,k,n,mc);
                r[i+1]=new ZetaTestTriple(-j,k,n,mc);
                r[i+2]=new ZetaTestTriple(-j,-k,n,mc);
                r[i+3]=new ZetaTestTriple(-j,k,-n,mc);
                r[i+4]=new ZetaTestTriple(j,-k,-n,mc);
                r[i+5]=new ZetaTestTriple(j,k,-n,mc);
                r[i+6]=new ZetaTestTriple(j,-k,n,mc);
                r[i+7]=new ZetaTestTriple(-j,-k,-n,mc);
                i+=8;
            }
        }
    }
    System.out.println("2013="+r[2013].toString());//(-10 * pi^-9)/-10
    System.out.println("3172="+r[3172].toString());//(-10 * pi^-9)/-10
    System.out.println("1283="+r[1283].toString());//(-10 * pi^-9)/-10
    System.out.println("7412="+r[7412].toString());//(-10 * pi^-9)/-10
    //They're all the same...
    return r;
}

编辑:这是 ZetaTestTriple 构造函数:

    private static BigDecimal j,n;
private static int k;
private static MathContext mc;

public ZetaTestTriple(int J, int K, int N, MathContext mathC){
    j=new BigDecimal(J);k=K;n=new BigDecimal(N);
    mc=mathC;
}

最佳答案

问题是您的属性是静态的。

private static BigDecimal j,n;
private static int k;
private static MathContext mc;

通过将它们声明为static,每次实例化您的类时它们都会被覆盖。

关于java - 我的数组生成算法坏了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18127995/

相关文章:

java - 放置n个点同时最大化最小距离

algorithm - 如何混合特定数量的两种颜色

javascript - 如何从另一个文件调用数组的属性

c++ - 将大矩形分割成小矩形(2D 打包)

java - 如何读取XML文件?谷歌应用引擎端点

java - Maven 在构建时包括旧的 SNAPSHOT

javascript - 为什么推送到数组时会得到空对象?

javascript - 如何在 Javascript 中向数组添加可省略的动态值?

java - Android:加载 xml 布局时出现 OutOfMemoryError。我该如何避免它意味着什么?

java - 我应该把这个配置设置放在哪里?