Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 和我的高斯-乔丹消去码混淆了吗_Java_Algorithm - Fatal编程技术网

Java 和我的高斯-乔丹消去码混淆了吗

Java 和我的高斯-乔丹消去码混淆了吗,java,algorithm,Java,Algorithm,所以,我一直在从Rosetta代码的伪代码中研究java算法,我认为它非常接近于工作,只是值的最后一列是错误的。我想知道是否有人可以偷看一下,告诉我我的错误。我试过搜索,但就是找不到。谢谢 public static double[][] gaussJordan2(double[][] gauss) { int lead = 0; int rowCount = gauss.length; int columnCount = gauss[0].length; fo

所以,我一直在从Rosetta代码的伪代码中研究java算法,我认为它非常接近于工作,只是值的最后一列是错误的。我想知道是否有人可以偷看一下,告诉我我的错误。我试过搜索,但就是找不到。谢谢

public static double[][] gaussJordan2(double[][] gauss)
{
    int lead = 0;
    int rowCount = gauss.length;
    int columnCount = gauss[0].length;

    for(int r = 0; r < gauss.length; r++)
    {
        if(columnCount <= lead)
        {
            //return gauss;
        }

        int i = r;

        while(gauss[i][lead] == 0)
        {
            i++;

            if(rowCount == i)
            {
                i = r;
                lead++;

                if(columnCount == lead)
                {
                    //return gauss;
                }
            }
        }

        swapRows(gauss, i, r);

        if(gauss[r][lead] != 0)
        {
            for(int j = 0; j < gauss[r].length; j++)
            {
                gauss[r][j] /= gauss[r][lead];
            }
        }

        for(i = 0; i < rowCount; i++)
        {
            if (i != r)
            {
                double f = gauss[i][lead];

                for (int k = 0; k < gauss[r].length; k++)
                {
                    gauss[i][k] -= f * gauss[r][k];
                    printMatrix(gauss);
                }
            }
        }
        lead++;
    }

    printMatrix(gauss);
    return gauss;
}
公共静态双[][]高斯约旦2(双[][]高斯)
{
int铅=0;
int rowCount=高斯长度;
int columnCount=高斯[0]。长度;
对于(int r=0;rif(columnCount)你能给我们一个示例输入以及预期和实际的输出吗?你应该试着写一些单元测试。查找JUnit。谢谢你的快速回复。Oops:这是我传递给它的数组:double[][]a={{1,2,-1,-4},{2,3,-1,-11},{-2,0,-3,22};我期望这个数组能输出:{{10-8},{01-01},{0 0 1-2}但我知道:{1.0 0.0 0 0.0 80.0},{0.0 1.0 0 0.0-29.0},{-0.0-0.0 1.0 26.0}问题解决了,还是没有解决?
            double grab = 0.0;
            double place = 0.0;

            for (int i = highRow; i < a.length; i++) {
                    for (int j = 0; j < a[0].length; j++) {
                            grab = a[highRow][j];
                            place = a[lowRow][j];
                            a[highRow][j] = place;
                            a[lowRow][j] = grab;
                    }
            }
            printMatrix(a);
            return a;

    }