资源简介 简单算法我设计 ——感知算法设计 我们在学习别人分析算法的过程中,不断积累经验,用合理的思维方式去考虑问题,也能容易地设计出算法。 想一想 看看下面这个游戏:农夫过河问题。 农夫需要把狼、羊、菜和自己运到河对岸去。只有农夫能够划船,而且船比较小,除农夫之外每次只能运一种东西。 还有一个棘手问题,就是如果没有农夫看着,狼会吃羊,羊会吃菜。 我们能想出一种办法,让农夫能够安全地安排这些东西和他自己过河吗? 如果有可行方案,能找出所有方案吗? 学一学 上节课学过“分解”等算法分析方法,现在运用它们帮我们设计算法解决问题吧! 先用“分步”法试试,可能是这样: 1、带第一样东西过河; 2、回去; 3、带第二样东西过河; 4、回去;带第三样东西过河。 在上面5步的基础上,再考虑每一步。可以把当前步继续分成更小的步,即用“分解”法。 得到一种算法: “分步”“分解”可以降低问题的难度,小步骤或小问题全部解决了,整个大问题也就解决了。 练一练 “农夫过河”算法第三步,农夫选第二样东西时,可以试试选菜吧。还有其他可行方案吗?说说你的理由。 学完这节课,你有什么收获? 谢谢 展开更多...... 收起↑ 资源预览