簡體   English   中英

Python實現桿切割算法

[英]Python implementing rod cutting algorithm

我正在練習動態編程,也是python的新手。 當我在shell中嘗試這個。

def cut_rod(p, n):
    if n==0:
        return 0
    q = float('-inf')
    for i in range(n):
        q = max(q, p[i] + cut_rod(p, n-1-i))
    return q

p = [1,5,8,9,10,17,17,20,24,30]
print(timeit.repeat("cut_rod(p, 4)", "from __main__ import cut_rod",
              number =1000))

它警告我,p不是一個全局變量。 在timeit函數中p不是已經是全局變量嗎?

問題是你沒有導入p

print(timeit.repeat("cut_rod(p, 4)", "from __main__ import cut_rod, p",
              number =1000))

timeit在受控環境中執行代碼,因此您必須顯式傳遞語句所需的所有內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM