一、问题描述
编写一个名为collatz()的函数,设置一个整型参数num。如果参数是偶数,那么collatz()就输出并返回num// 2;如果num是奇数,collatz()就输出并返回3 * number + 1。然后编写程序,让用户输入一个正整数,并不断对这个数调用collatz(),直到函数返回值1
二、角谷猜想简介
角谷猜想由日本数学家角谷静夫发现。据日本和美国的数学家攻关研究,在小于7*10^11的所有的正整数,都符合这个规律。角谷猜想又称为奇偶归一猜想( 英语:Collatz conjecture),3n+1猜想、 冰雹猜想、 角谷猜想、 哈塞猜想、 乌拉姆猜想或 叙拉古猜想,是指对于每一个正整数,如果它是 奇数,则对它乘3再加1,如果它是 偶数,则对它除以2,如此循环,最终都能够得到1。
三、python编程实现
collatz()函数:
def collatz(num):
if num % 2 == 0:
print(num//2,end=' ')
return num//2
else:
print(3 * num + 1,end=' ')
return 3*num+1
main()函数:
import collatz
def main():
num=int(input('请输入一个正整数:'))
n=num
i=0
print('角谷猜想的序列是:')
while n!=1:
i=i+1
n=collatz.collatz(n)
if(i%10==0):
print()
if __name__=='__main__':
main()
四、运行结果
好了,就分享这么多吧!