ハノイの塔


中に入る。


ハノイのタワーアルゴリズムを初めて見たとき、私の精神は揺れ動いた.他の解釈を見ていないで、ただ私の頭で理解しようとしただけです.これはいい選択ではありません.自分でやってみるのもいいが、挫折した問題は答えを見たほうがいい.もしあなたが理解できて、答えを見ても解釈できるなら、大丈夫です.

コアコンセプト


ゲームの目的は、次の2つの条件を満たす場合に、1本の柱に挿した円板を順番に別の柱に移し、積み上げ直すことです.
一度に1枚のオリジナル
  • しか移動できません.
  • 大きな円板は小さな円板にはできません.
  • 一番下の円板はターゲット柱にあるはずです.そのため、上の円板は、ターゲットの柱ではなく、他の柱に配置する必要があります.
    他のターゲット柱を別の柱に配置するには、他の柱の一番下の円板をターゲット柱に配置する必要があります.書くのが難しくて、写真を見ると分かりやすいです.
    最も重要な概念は,再帰関数が発生するたびに条件が同じであることである.一番大きいバックシートは下にあればいいです.従って、帰郷を実施するとともに、従来の環境の影響を受けない.
    一番下の円板を移動して、一番上の円板を移動して、一番下から計算すると、答えが見つかりやすいです.

    私の答え

    function solution(n) {
      var answer = [];
      
      function hanoi (num, from, to, mid) {
        if (num === 1) {
          answer.push([from, to])
        } else {
          hanoi(num - 1, from, mid, to)
          answer.push([from, to])
          hanoi(num - 1, mid, to, from)
        }
      }
      hanoi(n, 1, 3, 2)
      return answer; //
    }

    別の答え

    function hanoi(num, from, to, mid) {
      if (num === 0) return;
      hanoi (num - 1, from, other, to);
      console.log(`${from}번에서 ${to}로 옮긴다.`);
      hanoi (num - 1, other, to, from);
    }

    コメントURL


    https://youtu.be/aPYE0anPZqI