首先完全忽略有一个环可以单独控制的情况,过于简单
只考虑每次旋转都要旋转两个环的情况
设三个环的初始角度,三个环每次旋转会转动的角度
![](http://tiebapic.baidu.com/forum/w%3D580/sign=f988496b1cee3d6d22c687c373146d41/0b45d58a4710b9126049ac3286fdfc03904522cc.jpg?tbpicau=2024-07-20-05_a8662f306f1384ec8dd7b13eebc7ac50)
退出条件非常简单,三个环都归为0度的时候肯定是得到解了
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ffe54f58032309f7e76fad1a420c0c39/54117189d43f8794146d12e2971b0ef419d53ac6.jpg?tbpicau=2024-07-20-05_7fe387083907ef3931bca4b56a202bff)
但是我在如何进行深度优先的问题上感到了困惑
因为无论是N皇后还是数独,都有很明确的继续条件,例如这个位置是可以放置皇后,这个数可以填入当前空格,我们去进行尝试,如果最终无法得解,收到false后会回溯并继续进行后续操作
但是这个罗盘问题我无法得到明确的条件,即什么时候旋转[内中,内外,中外]的罗盘,而什么时候又需要进行回溯
![](http://tiebapic.baidu.com/forum/w%3D580/sign=4c96fda49409b3deebbfe460fcbd6cd3/8542ca234f4a20a45cfb660bd5529822700ed0ef.jpg?tbpicau=2024-07-20-05_9f67d8c87b219cc5164fb2f50a3e160a)
我选择了一个非常笨的办法,就是完全随机的进行旋转,直到得到解为止。
唯一的优化是当某两个环被旋转到和他们的初始姿态完全相同时,则认为控制这两个环的那种旋转和没有旋转是等价的,将旋转次数归零。
只考虑每次旋转都要旋转两个环的情况
设三个环的初始角度,三个环每次旋转会转动的角度
![](http://tiebapic.baidu.com/forum/w%3D580/sign=f988496b1cee3d6d22c687c373146d41/0b45d58a4710b9126049ac3286fdfc03904522cc.jpg?tbpicau=2024-07-20-05_a8662f306f1384ec8dd7b13eebc7ac50)
退出条件非常简单,三个环都归为0度的时候肯定是得到解了
![](http://tiebapic.baidu.com/forum/w%3D580/sign=ffe54f58032309f7e76fad1a420c0c39/54117189d43f8794146d12e2971b0ef419d53ac6.jpg?tbpicau=2024-07-20-05_7fe387083907ef3931bca4b56a202bff)
但是我在如何进行深度优先的问题上感到了困惑
因为无论是N皇后还是数独,都有很明确的继续条件,例如这个位置是可以放置皇后,这个数可以填入当前空格,我们去进行尝试,如果最终无法得解,收到false后会回溯并继续进行后续操作
但是这个罗盘问题我无法得到明确的条件,即什么时候旋转[内中,内外,中外]的罗盘,而什么时候又需要进行回溯
![](http://tiebapic.baidu.com/forum/w%3D580/sign=4c96fda49409b3deebbfe460fcbd6cd3/8542ca234f4a20a45cfb660bd5529822700ed0ef.jpg?tbpicau=2024-07-20-05_9f67d8c87b219cc5164fb2f50a3e160a)
我选择了一个非常笨的办法,就是完全随机的进行旋转,直到得到解为止。
唯一的优化是当某两个环被旋转到和他们的初始姿态完全相同时,则认为控制这两个环的那种旋转和没有旋转是等价的,将旋转次数归零。