(14)考拉茲猜想
任意數使用以下公式可以導出一系列數字,而此數列最終會結束於1(目前尚未被證明)
n → n/2 (n是偶數)
n → 3n + 1 (n是奇數)
例如 n=13,可以導出以下10個數字,我們可以稱13這個數字的考拉茲生命週期是10。
13 → 40 → 20 → 10 → 5 → 16 → 8 → 4 → 2 → 1
【最後目標】
在小於一百萬的數字中,哪一個數字的考拉茲生命週期最長?
練習1:使用遞迴印出10到1的數字
1 2 3 4 5 6 7 8 | def count_down(number):
print(number)
if number == 1:
return 1
else:
count(number-1)
count_down(10)
|
練習2:數字13的考拉茲數字串
1 2 3 4 5 6 7 8 9 10 11 12 13 | def collatz(number):
global numbers
numbers.append(number)
if number == 1:
return 1
elif number % 2 == 0:
collatz(number//2)
else :
collatz(3*number+1)
numbers = []
collatz(13)
print(numbers)
|
練習3:計算串列中元素個數
1 2 | numbers = [1,2,3,4,5,6,7,8,9,10]
print(len(numbers))
|
本單元課程自2018.4.23日起已被瀏覽 795 次