请列举几个不同的 n 值(如 n= 120, 7, 27),分别求出 hailstone 的返回值,体会证明算法有穷性的困难。
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Time : 2020/5/27 15:51
# @Author : caius
# @Site :
# @File : day4.py
# @Software: PyCharm
import numpy as np
import matplotlib.pyplot as plt
def hailstone(n):
length = 1
while(1<n):
if n %2 == 0:
n = n//2
else:
n = n*3+1
length += 1
return length
if __name__ == '__main__':
x = [n for n in range(10000)]
y = [hailstone(h) for h in x]
plt.scatter(x,y)
plt.xticks(np.arange(min(x),max(x)+1,1000))
plt.xlabel('n')
plt.ylabel('hailstone(n)')
plt.show()