一次值得回忆的讲座

涛声依旧

<p class="ql-block">这几天,一则使镇海中学、也使宁波教育界再闪光彩的信息在网上热传。 </p> <font color="#167efb">此图片剪辑自网上。</font> <p class="ql-block">国际信奥赛:全称国际信息学奥林匹克竞赛(International Olympiad in Informatics, IOI),是计算机科学领域最具影响力的国际赛事之一,竞赛聚焦<span style="color: rgb(255, 138, 0);">算法设计</span>与<span style="color: rgb(255, 138, 0);">编程能力,</span>紧扣当前计算机科学研究和应用的热点。</p> <p class="ql-block">十五年前的2010年前后,有人问我当时计算机科学要记的重点是什么?我就告知其记6个字“云计算、云平台”,写文章、作报告,尽量把这6个字用进去,至少起到点缀装饰的作用。当然,能够花点时间切实研究一番,并用于工作实践,那是最理想的。</p><p class="ql-block">现阶段,若问同样的问题,本人就建议记忆一下“数据模型、算法设计”这8个字,计算机科学领域的舞台,主角也在变换。</p><p class="ql-block"><br></p> <p class="ql-block">近年AI研究和产品火爆,数据模型这个词组频频出现在官方文件、官媒和各种自媒体上。建立数据模型的核心技术是“算法设计”,于是,过去很少露面的“算法设计”这个词组也随之行情看涨、成了热词,还成了国际信奥赛的两项主要内容之一。</p> <p class="ql-block">这个新主角的登场也使几年前母校举办的一次活动被人重新提起。那年,在我初中母校宁波市慈湖中学王书记和孔老师安排下,到校与在读小校友作了个跟计算机科学有关的交流和专题讲座。</p><p class="ql-block"><br></p><p class="ql-block">彼时本人供职于市府唯一的计算中心,根据自身工作的体会和学生社团的特点,列出了几个题目,请王书记和孔大海老师挑选定夺,两位领导选中的题目就是《<b>聊聊算法设计</b>》。</p> <p class="ql-block">当时算法设计这个术语很少有人提到,牛顿迭代法、龙格库塔法这些经典算法,绝大多数人都不曾听到过。这个现今耀眼夺目的主角,在其深藏不露默默潜伏时,我们<font color="#ff8a00">慈湖中学率先开启了主题明确的——算法设计讲座。</font></p><p class="ql-block"><br></p> <font color="#167efb">这张照片由慈湖中学王书记提供。</font> <p class="ql-block">讲到用牛顿迭代法求解方程的根,小校友们饶有兴致。同学们解过无数个方程,没想到还会有这样的方式求解,够奇特的!</p><p class="ql-block"><span style="color:rgb(57, 181, 74);">【以下这段原理笔者必须写上,不然文章显得有缺失。对数学定理感到枯燥的读者可以跳过,不影响整体阅读】</span></p><p class="ql-block">牛顿迭代法依据的原理是“闭区间上连续函数的性质”:“若y=f(x) 在闭区间 [a,b] 内两端函数值反号(即f(a)・f(b) < 0),则在该区间内至少存在一点ξ,使 f(ξ)=0”。</p><p class="ql-block">从图像上看很直观易懂,若f(a) 和 f(b)一正一负,那这2点必定是一个在X轴的上方,另一个在X轴下方,则整条函数曲线与X轴至少有一个交点,这个交点的函数值等于0,就是方程的根。</p> <p class="ql-block">利用计算机求解时,没有经验值或者懒得动脑筋的话,可以任选两个距离充分大的端点,如[-1000, 1000] ,然后计算两个端点的函数值。只要这2个f(x)值的符号相反,就说明该区间内存在根。</p><p class="ql-block">接着对半划成2个区间 [ -1000, 0 ] 和 [ 0,1000 ],分别计算2个区间两端函数值,去掉函数值符号相同的区间(因为这个区间不存在方程的根)。</p><p class="ql-block">如此反复进行,直到两个函数值之差≤指定的误差值为止。(当然这些动作都是由计算机完成的)。</p><p class="ql-block"><br></p><p class="ql-block">如果人工这么计算,那考试时可能等结束铃响也求解不了一个方程题。所以人工不能这么干,得动脑筋,利用定理和技巧(例如因式分解等)来求解。</p><p class="ql-block">而计算机就依仗其运算速度快(一秒钟能计算上万个点的函数值)、反复做的事情不会走样(它不会因运行时间长了而疲乏算错)的特点,用这种傻瓜办法求解。并且这种办法已被广泛应用于各类实际工程或事务的方程求解中。</p><p class="ql-block">通过这个例子,同学们看到了计算机这种充分利用自身特点,“归纳成一种动作,反复执行”的思路,对算法设计的基本思维方式有了形象的了解。</p><p class="ql-block"><br></p> <p class="ql-block">当时与在校小校友们交流时,一个强烈的愿望是:看了陈景润故事中叙述的,他是听课时有次老师顺便讲到哥德巴赫猜想,使他产生了浓厚的兴趣,立志要解决这个猜想的证明。</p><p class="ql-block">因此很期望我们慈湖中学学生中,若有人能自此对算法设计产生浓厚的兴趣,在之后升入高校学习中,在这方面取得斐然成果,为国家作出贡献、为母校争得荣誉。镇海中学的学霸已捷足先登走上领奖台,慈湖中学的有志者尚奋进在通向终点的路上?……</p><p class="ql-block"><br></p><p class="ql-block"><br></p>