第一章、問題描述
第二章、直接求解
import time
import numpy as np
start=time.perf_counter(
)first=np.array([2
,5,1
])second=np.array([[
12,14,
10],[
6,10,
4],[
13,12,
11]])
third=np.array([[
3,9]
,[6,
5],[
8,10]
])forth=np.array([5
,2])
distance_ijk=
#字典型別
for i in
range(3
):for j in
range(3
):for k in
range(2
):distance_ijk[
(first[i]
+second[i]
[j]+third[j]
[k]+forth[k])]
=((i,j,k)
)#將所有距離儲存為鍵,相對於的序號儲存為元組型別的值
print
(distance_ijk)
#返回相應的字典資料
print
(distance_ijk.keys())
#返回字典中鍵的資訊,也就是所有的距離,為列表型別
print
(distance_ijk.values())
#返回字典中值得資訊,也就是序號組合
min_jian=
min(distance_ijk.keys())
#求出最小的距離
relative_zhi=distance_ijk.get(min_jian)
#當為最小距離時返回相應的順序組合
print
("最距離值為:,最距離值順序組合為:"
.format
(min_jian,relative_zhi)
)end=time.perf_counter(
)print
("執行時間為s"
.format
(end-start)
)
執行結果:
dict_keys([22, 25, 27, 23, 24, 19, 26, 21, 20])
dict_values([(2, 0, 0), (2, 2, 0), (0, 1, 0), (0, 1, 1), (2, 2, 1), (1, 0, 0), (1, 1, 0), (1, 2, 1), (2, 1, 1)])
最距離值為:19,最距離值順序組合為:(1, 0, 0)
執行時間為0.004156999999999966s
注:也可用動態規劃求解
最短路 最短路徑問題
題目描述 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點直線的距離。現在的任務是找出從一點到另一點之間的最短路徑。input 共有n m 3行,其中 第一行為乙個整數n。第2行...
最短路問題
簡單的最短路問題 includeconst int maxnum 1002 const int maxint 100005 void dijkstra int n,int v,int dist,int c maxnum maxnum dist v 0 s v 1 依次將未放入s集合的結點中,取dis...
最短路問題
time limit 5000ms memory limit 65536kb total submit 16 accepted 3 page view 402submit status discuss description 現在有n個城市,編號從1到n。現在已知從城市i到城市j需要走的時間為aij...