崩坏星穹铁道吧 关注:420,301贴子:4,823,849
  • 9回复贴,共1

关于那个星槎罗盘的算法,希望得到一些帮助

只看楼主收藏回复

首先完全忽略有一个环可以单独控制的情况,过于简单
只考虑每次旋转都要旋转两个环的情况
设三个环的初始角度,三个环每次旋转会转动的角度

退出条件非常简单,三个环都归为0度的时候肯定是得到解了

但是我在如何进行深度优先的问题上感到了困惑
因为无论是N皇后还是数独,都有很明确的继续条件,例如这个位置是可以放置皇后,这个数可以填入当前空格,我们去进行尝试,如果最终无法得解,收到false后会回溯并继续进行后续操作
但是这个罗盘问题我无法得到明确的条件,即什么时候旋转[内中,内外,中外]的罗盘,而什么时候又需要进行回溯

我选择了一个非常笨的办法,就是完全随机的进行旋转,直到得到解为止。
唯一的优化是当某两个环被旋转到和他们的初始姿态完全相同时,则认为控制这两个环的那种旋转和没有旋转是等价的,将旋转次数归零。


IP属地:浙江1楼2023-05-06 21:09回复
    ???这玩意儿???真的值得如此大费文章吗??不是基本思考一下,跟着提示转几下不就得了


    IP属地:河南来自Android客户端3楼2023-05-06 21:11
    收起回复
      但是很明显,随机这种做法,完全不可能求出最优解,是笨蛋的做法
      然后我忘记掉Math.Abs()了,现在加一下
      我们假设,今年秋招的米哈游社招笔试题出了这个,要怎么求出总步数最少的解法呢


      IP属地:浙江4楼2023-05-06 21:19
      回复
        两层for循环就可以穷举了吧,内中转i次,内外转j次,中外就是确定的,是解return不是就continue。


        IP属地:日本来自Android客户端5楼2023-05-06 21:44
        回复
          3个按键次数设未知数XYZ
          3个环运算设置3个方程组
          3元1次有3个方程组就能求解


          IP属地:广东6楼2023-05-06 21:58
          回复
            参考下魔方的转法?


            IP属地:上海来自Android客户端7楼2023-05-07 09:24
            回复
              艹,有点心养想算,又有点懒得动


              IP属地:上海来自Android客户端8楼2023-05-07 09:25
              回复