從乙個2×2網格的左上角開始,有6條(不允許往回走)通往右下角的路。
對於20×20的網格,這樣的路有多少條?
def
get_load_num
(x, y):
""" (x, y)網格的路數等於(x - 1, y) + (x, y - 1)
"""if x == 0
or y == 0:
return
1return get_xy_load(x - 1, y) + get_xy_load(x, y - 1)
defget_xy_load
(x, y):
"""
遞迴呼叫
注意儲存已求解過的網格
"""key = str(x) + '_' + str(y)
if key in xy_dict:
xy_load = xy_dict[key]
else:
xy_load = get_load_num(x, y)
xy_dict[key] = xy_load
return xy_load
xy = 20
xy_dict = dict()
print(get_load_num(xy, xy))
# 動態規劃求解
xy = 20
xy += 1
x_load_num = [1] * xy
for y in range(1, xy):
for x in range(1, xy):
x_load_num[x] += x_load_num[x - 1]
print(x_load_num[-1])
尤拉計畫 第15題 Lattice paths
從2 2格仔的左上角開始移動,只能向右或者向下移動,到達右下角共有6條路徑。在20 20的格仔中,有多少條這樣的路徑?我們利用2 2的格仔中的3 3個頂點來計算到達每個頂點有多少條路徑,我們初始化乙個陣列3 3的陣列x,其中每個值為0,之後會對其進行更新。對於最上邊一行和最左邊一行的頂點來說,從起點...
尤拉計畫 6
前十個自然數的平方和是 1 2 2 2 10 2 385 前十個自然數的和的平方是 1 2 10 2 552 3025 所以平方和與和的平方的差是3025 385 2640.找出前一百個自然數的平方和與和平方的差。def get square sub x 遞迴,展開行列式 if x 1 return...
尤拉計畫 14
以下迭代序列定義在整數集合上 n n 2 當n是偶數時 n 3n 1 當n是奇數時 應用以上規則,並且以數字13開始,我們得到以下序列 13 40 20 10 5 16 8 4 2 1 可以看出這個以13開始以1結束的序列包含10個項。雖然還沒有被證明 collatz問題 但是人們認為在這個規則下,...