Java 2D 数组 - 输入值

标签 java arrays matrix multidimensional-array

我正在为 TSP 实现 2 种算法,它使用一个类,其中包括路线、它们的成本等。目前它使用随机值,这很好,尽管我现在需要比较算法,以便公平地对待我需要使输入相同(这在使用随机输入时显然不太可能发生!)我遇到的问题是我不知道如何将其从随机值更改为将预先确定的值插入到 2D 数组中,不仅如此,而且我也不知道如何计算这些值的成本。

<小时/>

随机生成节点值:

Random rand = new Random();
            for (int i=0; i<nodes; i++) {
                for (int j=i; j<nodes; j++) {
                    if (i == j)
                        Matrix[i][j] = 0;
                    else {
                        Matrix[i][j] = rand.nextInt(max_distance);
                        Matrix[j][i] = Matrix[i][j];
                    }
                }
            }

我假设对于上述情况声明一个矩阵,例如 [4][4],然后 int 矩阵 [][] = 插入值

我对本类(class)的其他部分没有帮助,但我想我需要在询问之前确保这部分是正确的!

提前非常感谢!

最佳答案

你可以像这样初始化二维数组:

    double matrix[][] = { { v1, v2, ..., vn }, { x1, x2, ..., xn }, ..., { y1, y2, ..., yn } };

其中每个内部 {} 表示外部(第一个)索引,每个内部元素表示最内部(第二个)索引。

示例:要访问元素 x1,您可以执行以下操作:

    matrix[1][0];

这是您要求的答案,但我仍然认为最好对两种算法使用同一组随机值,​​Jon Taylor 展示了一种很好的方法。设置种子的代码如下所示:

    int seed = INTEGER_VALUE;
    Random rand = new Random(seed);

这样您将获得相同的值集。

关于Java 2D 数组 - 输入值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14322321/

相关文章:

java - 从 scriptlet 转换为 JSF 托管 bean 问题

java - 在 Java 中格式化数字以便打印

c 字符串数组比较

opencv - 平均几个旋转矩阵的正确方法是什么?

比较C中的两个矩阵

java - Java 中的动态计划并发任务执行

java - RxJava - 等待异步任务然后调用 Api

arrays - 从CSV加载两个数组

php - MYSql ORDER BY CASE 第一个 CASE 应按 ID 数组排序

python - 如何在 Python 中找到行梯形矩阵形式(未缩减)?