我必须在C#Traveling Salesman Problem中编写程序。我的应用程序可能正常运行。但是问题是我将点到点的每个距离都添加到双精度数组内部的一个唯一值中。
for (int i = 0; i < lengths.Length; i++)
{
for (int j = 0; j < lengths.Length / n - 1; j++)
{
if (n >= 1)
{
double dX = p[n - n].X - p[1].X;
double dY = p[n - n].Y - p[1].Y;
double Wynik = Math.Sqrt((dX * dX + dY * dY));
lengths[i] += Wynik;
}
else if (n >= 2)
{
double dX = p[n - n + 1].X - p[2].X;
double dY = p[n - n + 1].Y - p[2].Y;
double Wynik = Math.Sqrt((dX * dX + dY * dY));
lengths[i] += Wynik;
}
else if (n >= 3)
{
double dX = p[n - n + 2].X - p[3].X;
double dY = p[n - n + 2].Y - p[3].Y;
double Wynik = Math.Sqrt((dX * dX + dY * dY));
lengths[i] += Wynik;
}
}
}
例如,如果我运行应用程序,则显然可以计算出最佳方法并绘制出我要的每个点,但是现在我不知道如何从最佳方法取回这些Point(x,y)。在我的pictureBox上画线。