尤拉計畫 第15題 Lattice paths

2021-10-09 14:22:24 字數 789 閱讀 1819

從2×2格仔的左上角開始移動,只能向右或者向下移動,到達右下角共有6條路徑。

在20×20的格仔中,有多少條這樣的路徑?

我們利用2×2的格仔中的3×3個頂點來計算到達每個頂點有多少條路徑,我們初始化乙個陣列3×3的陣列x,其中每個值為0,之後會對其進行更新。

對於最上邊一行和最左邊一行的頂點來說,從起點開始向右或向下到達這些頂點的路徑只有一條,所以我們將x[0][0],x[0][1],x[0][2],x[1][0]和x[2][0]都更新為1。

到達第二行的第二個頂點的路徑數=(到達第二行第乙個頂點的路徑數+到達第一行第二個頂點的路徑數),因為只有第二行第乙個頂點和第一行第二個頂點可以通過向右或者向下到達該點,故到達每個頂點的路徑數都由到它左邊頂點的路徑數和到它上邊頂點的路徑數相加得到。

對於20×20的格仔,用這樣的解題思路就可以得到結果。

def routes(n):

x = [[0 for i in range(n + 1)] for j in range(n + 1)]

for i in range(n + 1):

x[0][i] = 1

x[i][0] = 1

for i in range(1, n + 1, 1):

for j in range(1, n + 1, 1):

x[i][j] = x[i - 1][j] + x[i][j - 1]

return x[n][n]

if __name__ == '__main__':

print(routes(20))

尤拉計畫第3題

problem 3 the prime factors of 13195 are 5,7,13 and 29.what is the largest prime factor of the number 600851475143.問題3 13195的質因數為5,7,13和 29。6008514751...

尤拉計畫第12題

三角形數數列是通過逐個加上自然數來生成的。例如,第7個三角形數是 1 2 3 4 5 6 7 28。三角形數數列的前十項分別是 1,3,6,10,15,21,28,36,45,55,讓我們列舉出前七個三角形數的所有約數 1 1 3 1,3 6 1,2,3,6 10 1,2,5,10 15 1,3,5...

尤拉計畫第21題

記d n 為n的所有真因數 小於n且整除n的正整數 之和。如果d a b且d b a,且a b,那麼a和b構成乙個親和數對,a和b被稱為親和數。例如,220的真因數包括1 2 4 5 10 11 20 22 44 55和110,因此d 220 284 而284的真因數包括1 2 4 71和142,因...