本文主要是介绍【理解】算法:chessboard covering with trominoes,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
嘿嘿,trominoes其实就是L型拼图。今天又来说一个递归。出处是Python Algorithms,第三章,大概九十几页的地方。
这个算法试图解决,国际象棋棋盘用L型拼图拼接。其实最后还是会有个角缺着的,如图,一般会先把这个缺掉的格子定义好。
这似乎看起来有点难度...于是伟大的人类再次尝试采用divide and conquer化解,然后就成功了。。。
借高中数学老师的话说,都是新问题老方法啊。
一个8*8的正方形盘子,其实可以看成2*2的小格子。然后以此类推到8*8。那么程序怎么玩呢?书上给了算法,却没有好好注解。这里用逐步还原的方式来解释下算法。
首先弄出个棋盘8*8,先把这个棋盘的中心点定义出来(图中的1),再定义出这个中心点的四个角(也就是2),再定义四个中心点的外部正方形的四个角。以此来完善整个棋盘。
这篇关于【理解】算法:chessboard covering with trominoes的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!