本站最新域名 m.boshishuwu.com
下课后,苏慧收拾完草稿纸,回到了爷爷家,苏慧在爷爷家吃完晚饭,一手拿着包子一手拿着试题集在看。爷爷敲了敲她的脑门:“好好吃饭,吃完饭再看吧。”这时候,苏亮回到了家。“我回来了。”砰的一声把门给关上了。他看到苏慧在吃饭的时候还在看自己的试题集,就很费解。这么贪吃的小猪为什么那么用功啦?苏慧白了苏亮一眼。她把书一合。对爷爷说:“爷爷我数学竞赛的第一次考核通过了。”爷爷说:“我们的慧慧好厉害。”苏亮白了他一眼:“你是不是学了我书上的东西,所以才可以通过的?”苏慧:“小气,被你说的我偷了你的知识一样。”苏慧和苏亮做了一个鬼脸,背着书包说:“我走了。”爷爷说:“路上小心啊。”
苏慧下楼后看到妈妈开车已经等在门口了。就直奔门口。和妈妈说:“我昨天通过了数学选拔的测试答对了一道很难的题目。”妈妈并没有说话,她在专心开车。“哦!”妈妈答应了一句。苏慧也不说话了。回到家,苏慧接过劳累一天的妈妈的包。把它放到衣架上后,自己去书房看书了。她打开试题集,看着今天错误的题目,又自己默默地用功起来。
到了晚上8点半左右的时候,妈妈突然推开了苏慧房间的门。说道:“慧慧,饿了么?妈妈单位发了很多泡面。我们要不要一起吃?”苏慧起身伸了个懒腰。歪了歪头说:“好啊。”苏慧和妈妈在客厅外的餐桌上把泡面桶注满热水。妈妈轻柔的把泡面的盖子盖上。“我们要等三分钟哦。”苏慧和妈妈默默的坐在餐桌前,看着杯面上的水蒸气慢慢的上升。妈妈问到:“你每天一个人,没有爸爸是不是感到很寂寞?”苏慧说道:“倒没有特别的寂寞。我还有自己想做的事情。比如数学竞赛。”妈妈看了看苏慧说道:“这个很了不起啊,妈妈也很喜欢数理化。但是你真的不会很寂寞吗?”苏慧说道:“不会哦。”妈妈看了看杯面:“我们可以吃了。”
苏慧看着妈妈若有所思的表情,打开杯面默默的吃了起来。
第二天的清晨,苏慧5点半就起床了,来到客厅。发现妈妈已经早起去上班了。苏慧拿起书本收拾好书包。给自己倒了一杯牛奶。就出发去学校了。
一天的课程下来,苏慧基本都在开小差做高阶的数学题目。等下午的课程一结束,苏慧第一个冲出教室来到了数学竞赛小组。
李老师两手空空的站在讲台上。突然说道:“同学们拿出你们的纸和笔,我们开始做题目。我口述题干,你们把题目抄在草稿纸上,然后开始答题。”
大家都开始准备纸和笔准备抄写题干
李老师大声说道:“题目:在一个正方形的网格中,有一个5x5的小正方形。你可以从小正方形的一个顶点开始,每次向上、向下、向左或向右移动一格,但不能走回头路。问:从小正方形的一个顶点到对角线顶点的所有可能路径有多少条?今天就这一道题,答题时间30分钟。如果没有一个人回答出来,明天就继续。”
被淘汰剩下的人数只有十五个人,一个戴眼镜的男孩痛苦的抓了抓自己的头皮说道:“这是小学生做的题目吗?”教室里从安静变成了唉声叹气。
苏慧看着这道题目,除了自己把5x5的小正方形画了出来以后,并没有什么特别清晰的思路。感觉这道题更近似于一种策略的探索。也只有头疼。
30分钟过去了,终于有一个敢吃螃蟹的人举起了手:“老师我能给到你两种解法。”一个又高又壮的小胖墩站了起来:“第一种方法:从小正方形的一个顶点开始,尝试所有可能的路径,然后计数。第二种方法:从当前位置每次选择离对角线最近的方向。开始计数。”
李老师笑了笑说:“你很勇敢呐,可惜答案都是错的。你的第一种方法种在问题规模较大时会导致指数级的计算复杂度,不切实际。第二种方法,这个方法并不一定能够保证找到到对角线的最短路径,因为在后续的移动中可能会受限制而导致无法到达对角线。”
苏慧和其他人听着李老师的秒答好像神一样。
李老师说道:“这道题的发起者是来自于一个对人生有很深考量的人。你们虽然还是小学生,但是也快升入初中了。当于900个格子,如果每年去探望你的亲人一次就会用掉一次。人和人的见面总会越来越少。所以基于这样的考量。这道5x5的题目就出来了。大家是不是发现不管你们怎么去算计好像到最后结果和路线都是一团乱?”
大家一起使劲的点头。
那么接下来我来帮大家捋顺一下这道题的思路。
基于5x5的布局我们可以分析移动方向:从小正方形的一个顶点开始,可以向上、向下、向左或向右移动,但不能走回头路。这意味着在每个小正方形上,你有两个可能的选择(除了边界上的小正方形,它们只有一个可能的选择)。
递归求解:通过递归,从每个小正方形的顶点开始,计算到对角线顶点的所有可能路径数。递归的基本情况是当你到达对角线顶点时,路径数加一。
记忆化搜索:由于存在大量的重复计算,可以使用记忆化搜索来存储已经计算过的路径数,以避免重复计算。
动态规划:另一种方法是使用动态规划,从左上角开始逐步计算到右下角,将每个小正方形的路径数保存起来,最终得到结果。
大家虽然听的云里雾里,但是好像深深的被吸引住了。最后李老师问大家:“听懂了吗?”大家好像都没太听懂,但是好像又听懂了一点点。
“那我们就先视觉化一下吧。”
“首先,我们需要创建一个5x5的网格来表示小正方形。我们可以把左上角的顶点看作是,右下角的顶点看作是终点。
其次,我们初始化网格。由于我们只能从左边或者上边移动到当前格子,因此对于第一行和第一列的所有格子,到达它们的路径只有一条。所以我们把第一行和第一列的所有格子的路径数都初始化为1。
然后,我们开始填充剩余的格子。对于每一个格子,到达它的路径数等于到达它左边的格子的路径数加上到达它上边的格子的路径数。因为我们只能从这两个方向移动到当前格子。
我们按照这个规则,从左到右,从上到下填充所有的格子。最后,右下角的格子的路径数就是我们需要的答案。
这个问题的解决过程就是动态规划的过程。动态规划的关键在于找到问题的子结构,并且利用子结构的解来构建原问题的解。在这个问题中,到达每一个格子的路径数是一个子问题,我们通过解决这些子问题来解决原问题。”
“这下明白了吗?”李老师问到
“明白啦!”大家异口同声。
“好的!大家都很棒!阅读模式加载的章节内容不完整只有一半的内容,请退出阅读模式阅读
阅读模式无法加载图片章节,请推出阅读模式阅读完整内容
『加入书签,方便阅读』