第八百七十六章 安琪拉出关(1 / 2)
第一:分解问题
就是在分析问题后,将数据、过程或问题分解成更小的、易于管理的部分。
指将一个复杂的问题拆分成多个简单问题。比如:99X9=(100-1)X9=900-9=891,就是利用了一种简单的方式解决复杂的算术题,这就是分解。当把这些便于执行操作的小问题一步步地处理完毕后,原本很复杂的大问题也就迎刃而解了。
生活中我们也经常用到了分解问题的思想。比如:先学会拆分做菜的每个步骤,才能最终学会做好一道可口的佳肴。再比如:旅行问题就可以分解为路径规划、景点选择、城市交通问题、汽车导航等小问题。
第二:模式识别
观察数据的趋势和规律,识别出它是哪一类问题,找出各个部分之间的异同。
指的就是通过观察每个部分背后的模式、趋势及规律来帮助我们理解问题,思考解决方案。
比如:学习认识车辆的时候,会根据是否有四个轮子、是否在马路上跑来判断认识事物。再比如:前面旅游的问题,对于其中的一个小问题路径规划就可以用图论的最短路径理论解决。
在计算机中如果把重复出现的问题抽象成关键的信息点,就可以不用重复设计解决方案。
第三:抽象问题(一般化)
去掉次要的非本质的部分,抽出共同的本质属性。识别模式形成背后的一般规律。
建立模型实际上是一种抽象能力。抽象思维要求我们从大局看待整个问题,把重要的和不重要的部分区分出来,抛弃无关紧要的细节,建立系统中的一个模型。
抽象的重点在于区分好复杂度,明辨重要和不重要的信息。比如:我们需要画出整个城市的地铁线路图,这时候就会忽略不重要的信息,如路线的长短距离,着重突出需要关注的信息,如几号线和每条线之间换乘的站点等。
再比如:旅行问题,借助在线地图计算城市间的距离,将城市图形化,利用最短路径计算最短旅行路线。
第四:算法设计
为解决某一类问题撰写一系列详细步骤,针对这些相似的问题提供逐步解决的方案。
算法是为了解决问题而提出的一系列指令。为了不做无用功,我们需要将之前已经识别处理的问题变成一种通用模式,找出算法之后,并不等于解决了问题,还需要根据实际问题和场景对算法进行适应性调整——通过优化已有问题的解决方案来针对性提高。
我们也可以把算法开发过程理解为给某件事情找一个最简单的步骤,并把它整理成一份手册,这样所有人都可以用这份手册来最快地完成目标任务。
再比如:前面旅行的问题,最短路径可以帮助我们解决生活中遇到的实际问题,尽管我们没有开发任何算法
算法思维
第一:分解问题
就是在分析问题后,将数据、过程或问题分解成更小的、易于管理的部分。
指将一个复杂的问题拆分成多个简单问题。比如:99X9=(100-1)X9=900-9=891,就是利用了一种简单的方式解决复杂的算术题,这就是分解。当把这些便于执行操作的小问题一步步地处理完毕后,原本很复杂的大问题也就迎刃而解了。