本文主要是介绍关于学习的几点感悟,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
2019/05/18
引言
这周的主要时间都集中在写一个可视化的贪吃蛇搜索算法,除了可视化部分利用了别人已有的代码,后续的完全都是自己写的,并且现在通过整理代码,已经达到了一定程度的抽象。这里来记录几点自己的感悟,并且结合自己以往学习的内容,想想后面的学习过程,可能内容比较冗杂,但中心都是围绕后续的学习方法上。
感悟
针对问题的思考过程
在起初思考贪吃蛇这个问题的时候,我想不到非常好的点,我的第一想法是,我直接计算蛇头与食物距离,然后按照直线走不久行了,干嘛去搜索那些没有意义的路径。
所以最开始我根本想不到怎么去应用搜索算法,但在实现了搜索算法之后,我有点明白了我最开始的问题。我那种单一的想法,局限性非常大,那种直观感觉上得出的结论,并不能适用非常多的情况。可能说,我可以根据多种规则来考虑多种情况,但这种情况下总归有我没有考虑到的。
从最开始觉得没有必要使用搜索算法简单的想法,到实现了搜索算法之后,顺着这条思路走下去,能感觉到他的有用之处。我觉得这里的重点是对这个问题的建模过程,因为一开始我没有想到,这个贪吃蛇还能这样做,本质上很多问题我都存在着这种思维。问题的建模
在以往书籍的学习过程中,树上都是按照各种简单的图,路线规划等内容,进行介绍,他们使用的是最直观的演示方案(人工智能的书其实已经介绍了很多不同的方案,要比单纯的算法书好很多),但对于我学习来说,我真实面向问题的时候,我自己并不能直观地得出相应地建模方案,这也是第一个问题的根源。
但如果强行去思考的时候 ,我对应着算法思考的过程,我把贪吃蛇的状态和动作对应到算法的元素中去,对应他的建模过程, 我就能使用这个算法了。(其实就是应该这么思考)。我觉得就应该去这么个过程来解决问题,而且书上肯定也是想这么教你的,但不知道怎么了,第一想法并没还有建立这样的映射。我感觉最大的原因就是,光看书的时候,没有实践,没有完全理解到这个东西的作用性,所以看完树上的代码也就完事了。
我把这个过程称作问题的分解,从第一眼看到问题,然后我感觉能用某个算法, 将问题套用算法的基础元素,将问题分解为建模过程的元问题,然后再整体上弄这个东西。
这篇关于关于学习的几点感悟的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!