让我说我有几点:-5,-4,-3,-2,-1,0,1,2,3,4,5
我在第0点,我需要创建一条遍及1,2,3,4,5,-1,-2 ......等点的线。
该行将从0开始,并以任何以最短结束的点结束。
这个例子的答案是它会像这样0-> 1-> 2-> 3-> 4-> 5-> -1-> -2 - > -3-> -4-> -5或者它首先转到-1然后全部通过减去加号,结果相同(5 * 4 = 20长度)。
例如,如果我们去0-> 1-> -1-> 2-> -2 ......那么它就是从点到直线的最长线点(1 + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 = 10 * 11/2 = 55长度)
问题是如何在代码中写这个?
这些点也可能包含2或3维点,其中起点为(0,0,0,0)或其他任何点,最终该线可以通过所有这些点,但哪种方式将达到最短点线?
如何将它作为代码制作,正如我们在眼中看到的那样?
答案 0 :(得分:-1)
我认为这基本上是旅行商问题。你有N个目的地,每对目的地之间有一个具体的长度,你正试图找出访问所有目的地的最短旅行时间。
我有两个不同的方向来追求这个,我可以看到。首先,阅读旅行商问题和为其提出的各种算法(这是一个非常着名的算法问题),然后尝试在C#中实现一个 - 虽然只是为了警告你,你应该非常精通数学,因为它不是一个简单的问题。或者,您也可以查找其他人的现有实现,并在不理解理论基础的情况下使用它。