0
我一直在學習Python自己和遞歸是麻煩的。我們得到了一個重量2.0的首發。當單件重量= < 0.1時,我們返回一個計數。否則,將其分成2,3或4塊(數量隨機選擇)並再次發生。當所有不大於0.1時,返回碎片總數。到目前爲止我的代碼看起來像這樣。將棒打碎成小塊;遞歸步驟返回沒有用
import random as rand
def breaker_function(weight_of_piece):
if weight_of_piece <= 0.1:
return 1 #returns one piece
else:
return breaker_function(weight_of_piece/rand.randint(2,4))
但是,此代碼不起作用。我通過調試器運行它,當它到達遞歸步驟時,程序隨機打破它(不小於0.1)。由於碎片不小於0.1,所以功能停止。我沒有收到錯誤。
我也曾嘗試雙遞歸如(?):
return breaker_function(breaker_function(weight_of_piece/rand.randint(2,4)))
我也試圖在隨機件存儲在一個列表中,但只是複雜的事情,並得到了類似的結果。
測試案例:一個1.0的起始片我應該得到大約18件。