我正在为 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/