创建一个 java 循环,其中一个变量上升到 99,而另一个变量下降到 0
Creating a java loop that has one variable go up to 99 while the other variable goes down to 0
难以解释,提前致歉。我正在尝试添加 99 个不同变量之间的距离。我将它们全部放在哈希图中。我在想最好的方法是 (1, 2, distance),然后是 (1,3,distance),一直到我绘制出所有 99 个之间的距离。所以一个变量必须上升到 98,另一个必须上升到 99,然后上升到 98,等等。我不知道该怎么做。我尝试做一个嵌套的 for 循环,但这似乎不起作用。
for (int i=0; i<99; i++)
{
for (int j=99; j>0; i--)
{
graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
}
}
我想你想要:
for (int i=0; i < 99; i++) {
for (int j=i+1; j < 100; j++) {
graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
}
}
上面的双重嵌套循环将生成对,包括:
(0, 1)
(0, 2)
...
(0, 99)
(1, 2)
(1, 3)
...
(1, 99)
...
(98, 99)
如果您需要计算两个向量元素之间的距离,则需要使用任何一种距离算法 Manhatten
或 Euclidean
。您可能必须使用外部第三方库来执行此类操作。
Apache 公共库包含一个包 org.apache.commons.math3.ml.distance
和 类 来对向量执行 L1 和 L2 规范。
请查看文档here
难以解释,提前致歉。我正在尝试添加 99 个不同变量之间的距离。我将它们全部放在哈希图中。我在想最好的方法是 (1, 2, distance),然后是 (1,3,distance),一直到我绘制出所有 99 个之间的距离。所以一个变量必须上升到 98,另一个必须上升到 99,然后上升到 98,等等。我不知道该怎么做。我尝试做一个嵌套的 for 循环,但这似乎不起作用。
for (int i=0; i<99; i++)
{
for (int j=99; j>0; i--)
{
graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
}
}
我想你想要:
for (int i=0; i < 99; i++) {
for (int j=i+1; j < 100; j++) {
graphWeighted.addEdge(nodelist.get(i), nodelist.get(j), distances.get(i));
}
}
上面的双重嵌套循环将生成对,包括:
(0, 1)
(0, 2)
...
(0, 99)
(1, 2)
(1, 3)
...
(1, 99)
...
(98, 99)
如果您需要计算两个向量元素之间的距离,则需要使用任何一种距离算法 Manhatten
或 Euclidean
。您可能必须使用外部第三方库来执行此类操作。
Apache 公共库包含一个包 org.apache.commons.math3.ml.distance
和 类 来对向量执行 L1 和 L2 规范。
请查看文档here