美文网首页
Day 4 hailstone有穷性的证明

Day 4 hailstone有穷性的证明

作者: 快乐的老周 | 来源:发表于2020-05-25 22:34 被阅读0次
    def hailstone(n):
        length = 1
        while(1 < n):
            if n % 2 == 0:
                n = n/2
            else:
                n = n*3 + 1
            length += 1
        return length
    

    以上这个 hailstone 函数满足有穷性吗?意思是对于任意的 n, while 循环都会执行有限次而退出吗?

    根据邓工的课程,我们得知:

    至今学术界都无法证明对于任意的 ,一定满足:hailstone < 无穷大

    今天 Day 4 的练习题:请列举几个不同的 n 值(如 n= 120, 7, 27),分别求出 hailstone 的返回值,体会证明算法有穷性的困难。

    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__':
        list1 = [120, 7, 27]
        for i in list1:
            result = hailstone(i)
            print(f'n = {i} : hailstone({i}) = result')
    
    
    n = 120 : hailstone(120) = result
    n = 7 : hailstone(7) = result
    n = 27 : hailstone(27) = result
    

    相关文章

      网友评论

          本文标题:Day 4 hailstone有穷性的证明

          本文链接:https://www.haomeiwen.com/subject/gpfpahtx.html