Day3 总结
Day3 作业题:什么是一个算法?程序就等于算法吗?
这几天星球内提交作业人数 100+,今天早晨收到官方推荐的【星球周报】,有些惊喜,上周 36 次入选星球活跃榜,最高排名星球第 8 名,这还是不太容易的,要知道有很多各色各样的知识星球。
并且我们的星球的内容数、活跃人数、新付费成员都超过 99% 的星球。
而如果你要问我,这是如何做到的,我想最重要的一条:认认真真做好内容,真切实意的做点干货。
口碑比什么都值钱!一个把口碑看得比命还重要的人,值得信赖!
上周五 Day1 作业 Leven 的回答,截止目前更是被点赞 64 次:
好的,我们言归正传,首先回顾 Day3 作业星友们的回答,提取里面的一些回答,把最精华的部分带到公众号里与更多读者一起学习。
精选回答 1
:
一句话,两个公式概括:什么是算法,算法和程序的不同
精选回答 2
:
比较通俗易懂,也抓住了核心部分:程序不一定满足有穷性
精选回答 3
:
另一位星友上传的截图,简明扼要的总结出算法具备的几个核心特质:
更难能可贵的是,这位星友上传的另一幅更是相当精准的总结了程序与算法的不同之处:
程序是基于算法、被实现的coding,可能会无限次执行,并且还列举一个例子:操作系统就不是一个算法,而是无限次循环运行的程序。
还有更多星友的回答也很精彩,限于篇幅我就不贴到这儿了。根据清华大学邓俊辉老师的解释,算法的特质包括但不限于这些:
大家注意,算法特征邓工在最后是使用省略号,说明算法的特点不仅仅包括以上几条。
关于算法和程序的不同,大家直接参考精选回答3
即可。
算法的这些主要特点有时并不像我们想象的那样好去证明。比如我们会觉得算法有穷性是最容易判断的,其实不然,邓工在课程中介绍了一个例子,在此我引用一下:
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 循环都会执行有限次而退出吗?
根据邓工的课程,我们得知:
至今学术界都无法证明对于任意的 ,一定满足:
Day4 练习题
今天 Day 4 的练习题:请列举几个不同的 n 值(如 n= 120, 7, 27),分别求出 hailstone 的返回值,体会证明算法有穷性的困难。
<完>
根据你的情况和喜好,自愿加入这个星球,现在还是送你一张 31 元优惠券:
长按二维码,加入我的知识星球