2017-07-07 59 views
-7

假設我有幾點:-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

可能重複的[獲得最接近點的線](https://stackoverflow.com/questions/3120357/get-closest-point-to-a-line) – maccettura

+0

@maccettura nope這不是同一個問題,但感謝您的嘗試。 –

+0

「如何將它作爲代碼,就像我們在眼睛中看到的那樣?」簡單:C#包含大量的數學庫函數,...您可以使用其中一些。 – Rob

回答

-1

我認爲這基本上是旅行推銷員的問題。你有N個目的地,每對目的地之間有一個具體的長度,你試圖找出訪問所有目的地的最短行程時間。

你有兩個不同的方向來追求這個,我可以看到。首先,要詳細瞭解旅行推銷員問題和已經提出的各種算法(這是一個非常着名的算法問題),然後嘗試在C#中實現一個 - 儘管只是爲了警告您,您應該非常精通數學,因爲它是不是一個簡單的問題。或者,您也可以查找其他人的現有實現,並在不理解理論基礎的情況下使用它。

+0

是的,這正是問題所在!至少現在我知道它的名字。 好吧我會尋找它,非常感謝你的建議。 –

+0

謝謝凱文,我想我已經得到了問題的答案,非常感謝它接受了你的答案。在我做完之後,我可能會在未來添加代碼。 –