有一位旅行商,我們暫且稱呼他為彪哥。
他需要前往5個城市,所以想要計算出旅程最短的路線。
對於每種路線組合,他都計算出總旅程,再挑選旅程最短的路線。
那么,算法效率的問題來了。
5個城市有120個不同的排列方式,因此需要執行120次操作。
6個城市有720個不同的排列方式,因此需要執行720次操作。
7個城市有5040個不同的排列方式,因此需要執行5040次操作。
20城市有2432902008176640000個不同的排列方式,因此需要執行2432902008176640000次操作。
綜上所述,涉及n個城市時,需要執行n!(n的階乘)次操作才能計算出結果。
階乘的計算公式: n!=1×2×3×...×n。階乘亦可以遞歸方式定義:0!=1,n!=(n-1)!×n。
對於這個問題,有很多學者認為根本沒有更好的算法來代替它。
小伙伴們怎么認為呢?你有更好的算法嗎?