我热爱编程,也深知编程世界的有趣和困难。但是长期以来,算法作为晋升编程殿堂的必经之路,总是困住许多有志于算法竞赛的爱好者求索的脚步。在“编程课堂”中,龚老师用简单好玩的方式把核心概念通过练习和反思诠释的方式进行强化,目标是让你轻松地理解不少算法概念,而不仅仅困惑于题解。
《算法趣事》算法系列文章会收纳往年NOIP.NOI等竞赛真题、各大经典例题和有趣案例进行学习。文章会提供了大量图解来满足视觉型学习者,初学者可以不求甚解具体代码实现细节,仅仅学习算法成因核心概念。也请技术或教学经验丰富的同好、业内大佬们指点。
新的学期来临,学习了英语的同学们迫不及待的给自己起了个英文名,有叫'Tom',有叫'jack‘的。到了英语课上,英语张老师和同学们做了个游戏,张老师在英文名册中,猜英语课代表小李的英文名。张老师能在最快的时间内猜出小李的英文名字吗?学了不少日子编程的小雨挠了挠脑袋,这种问题似曾相识?小雨一下子就想到了“枚举法”。
张老师可以从首字母是'A'打头的名字开始猜,一旦猜错了就找下一个'A'打头的名字,如果找不到'A'打头的名字就找'B'打头的名字。那么,猜到最后一个字母'Z'的时候,肯定能猜出小李的英文名字。
小雨运用的“枚举法”如下思想:列出问题所有的解,然后根据判断条件逐个验证对错。若满足判断条件,则问题解决。否则,问题无解。
设计模式:1.分析题目,确定可解的范围。2.设计循环结构,包括循环次数和判断条件,在循环体内对可能解逐一判定,直至求出问题解。3.注意,小心电脑罢工!
第三点小心电脑罢工?枚举法广泛的运用在我们日常生活当中,算法思路清晰顺畅,程序编写简单。但是一旦枚举出的可能解过多,程序往往会运行较长时间。因此,我们应帮电脑分担些思考过程,再把任务交给电脑,而不是全部由电脑来工作。优秀的算法就是我们设计出来帮电脑分忧的。
“枚举法”是算法世界中的迎宾服务员,平易近人但只负责迎你步入算法世界,好戏还在后头呢?
小雨想了想,又有了新点子!
其实算法就在身边,有趣好玩的内容还在后头,家长不妨把算法小故事讲给孩子听听。
感谢转发,让计算机思维科普给每个孩子。