📜  程序打印Collatz序列(1)

📅  最后修改于: 2023-12-03 15:27:21.447000             🧑  作者: Mango

程序打印Collatz序列

简介

Collatz序列也叫哈塞猜想(Hailstone conjecture),是一个以自然数n为起点,根据一定规则迭代生成的序列。规则如下:

  1. 当n为偶数时,下一个数为n/2。
  2. 当n为奇数时,下一个数为3n + 1。

按照以上规则迭代生成序列,最终会得到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]