的考拉茲猜想考拉茲猜想序列
什麼,我試圖做的: 編寫一個叫做collatz_sequence函數,它起始整數並返回整數序列,包括起點,該號碼。以列表形式返回序列。創建你的函數,這樣如果用戶輸入任何小於1的整數,它將返回空列表[]。
collatz猜想背景:
採取任何自然數n。如果n爲偶數,則將其除以2得到n/2,如果n是奇數,則將其乘以3並加1以獲得3n + 1.無限重複該過程。猜想是你開始不管是什麼號碼有,你總是會最終達到1
我有什麼至今:
def collatz_sequence(x):
seq = [x]
if x < 1:
return []
while x > 1:
if x % 2 == 0:
x= x/2
else:
x= 3*x+1
return seq
當我運行這個用了不到一我得到空設置哪個是正確的。但是,當我運行一個數字大於1時,我只能得到該數字,即collatz_sequence(6)返回[6]。我需要這個返回整個數字序列,所以6應該返回列表中的6,3,10,5,16,8,4,2,1。
如果你這樣做了很多,這是一個memoized遞歸函數的理想人選。 – kreativitea