📅  最后修改于: 2023-12-03 15:27:21.447000             🧑  作者: Mango
Collatz序列也叫哈塞猜想(Hailstone conjecture),是一个以自然数n为起点,根据一定规则迭代生成的序列。规则如下:
按照以上规则迭代生成序列,最终会得到1。
例如,对于起始数字13,Collatz序列为:
13, 40, 20, 10, 5, 16, 8, 4, 2, 1
本文以Python语言为例,给出打印Collatz序列的程序实现。
def collatz(n):
"""
计算Collatz序列,返回以列表形式存储的序列
"""
seq = [n]
while seq[-1] != 1:
if seq[-1] % 2 == 0:
seq.append(seq[-1] // 2)
else:
seq.append(seq[-1] * 3 + 1)
return seq
def print_collatz(n):
"""
打印Collatz序列
"""
seq = collatz(n)
print(seq)
上述代码中,collatz(n)
函数用于计算Collatz序列,返回以列表形式存储的序列;print_collatz(n)
函数利用collatz(n)
函数计算Collatz序列并打印输出。
调用print_collatz(n)
函数,传入起始数字n,即可打印出以n为起点的Collatz序列。
print_collatz(13)
# 输出:[13, 40, 20, 10, 5, 16, 8, 4, 2, 1]