![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 0.1 ![]()
![]() |
如果寫出估價函數,估價x,y到目的地的距離 int judge(int x,int y) { int distance; int end_x; int end_y; distance=abs(end_x-x)+abs(end_y-y); return distance; } 而我在主程式~~輸入矩陣,以下代表加權邊線陣列 int node[7][3] = {{1, 2, 35}, {2, 3, 45}, {2, 4, 30}, {3, 5, 25}, {4, 5, 45}, {4, 6, 130}, {5, 6, 100}}; 那如果我要顯示出~~judge這個函數在主程式~~該如何寫呢? end_x-x,end_y-y代表到目的地的距離,變成矩陣,要怎麼寫呢?
本篇文章發表於2005-03-08 21:58
|
1樓 |
重新確認一下題目,「加權邊線陣列」的第一列{1,2,35}是代表node 1到node 2之間的邊線權重為35,是嗎?
本篇文章回覆於2005-03-08 23:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
0.1 ![]() |
是的~~以此類推node 2到node 3距離為45 ^^
本篇文章回覆於2005-03-08 23:40
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓 |
我猜你大概是給予一個 graph ,要找 node u 至 node v 的最短路徑吧?
這是很典型的一題 Single Source Shortest Path ,如果是做這題,我不會建議您使用 A* Search 啦,反而 Dijkstra's Algorithm 比較好。 而且 C++ 可以用 priority_queue ,在 code Dijkstra's Algorithm 時蠻分便的 ^^
本篇文章回覆於2005-03-08 23:42
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
0.1 ![]() |
恩~~是要做最短路徑沒錯!
因為考慮汽車流量問題~~我們必須考量估計函數~~強迫要使用a*演算法 非常謝謝這位大大的意見~~
本篇文章回覆於2005-03-08 23:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
0.1 ![]() |
恩~~是要做最短路徑沒錯!
因為考慮汽車流量問題~~我們必須考量估計函數~~強迫要使用a*演算法 非常謝謝這位大大的意見~~
本篇文章回覆於2005-03-08 23:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |