📜  解决拼图拼图所需的最少移动次数

📅  最后修改于: 2022-05-13 01:57:26.050000             🧑  作者: Mango

解决拼图拼图所需的最少移动次数

谜:
给你一个包含n块的拼图游戏。拼图的“部分”是一组一个或多个相互连接的部分。 “移动”包括连接两个部分。鉴于最初所有的棋子都是分开的,那么可以完成拼图的最少步数是多少?

回答

让我们分情况考虑上述问题:

  1. 情况 n = 2:在这种情况下,我们只需将两块组合在一起,这可以在一次移动中完成。因此,所需的移动总数为 1。
  2. 情况 n = 3:在这里,我们可以先根据需要连接任意两个部分,然后将最后一个部分添加到该部分。这导致总共 2 次移动。

  3. 案例n = 4:从最后一个案例继续,我们可以先合并两个部分,然后合并第三个,最后合并第四个。在这种情况下所需的移动总数为 3。

  4. 对于任何 n 值:请注意,在前 3 种情况下建立的模式。我们首先解决 (n-1) 个棋子的难题,然后最后一步添加最后一个棋子。

    让我们用数学来表示:

         Let F(n) be the function denoting the minimum number of moves required to solve the puzzle, where n is the number of pieces we have initially. Then, we have \\* \Rightarrow               \hspace{30} F(n) = F(n-1) + 1 \\* \Rightarrow               \hspace{30} F(n) - F(n-1) = 1 \\* \Rightarrow               \hspace{30}$$\sum_{i=2}^{i=n}\hspace{5}(F(i) - F(i-1) = 1) \\* \Rightarrow               \hspace{30}$$\sum_{i=2}^{i=n}\hspace{5}(F(i) - F(i-1)) = $$\sum_{i=2}^{i=n}1 \\* \Rightarrow               \hspace{30}(F(n) - F(n-1) + (F(n-1) - F(n-2)) + ..... + (F(2) - F(1)) = n - 1 \\* \Rightarrow               \hspace{30} F(n) - F(1) = n - 1 \\* \Rightarrow               \hspace{30} F(n) - 0 = n - 1 (F(1) = 0, its\hspace{2}trivial) \\* \Rightarrow               \hspace{30} F(n) = n - 1 \\*

    因此,