在程式設計與邏輯訓練中,經常會遇到「狀態轉換」與「限制移動」的挑戰題。今天分享的這個小問題,就是一個既直觀又能訓練邏輯思維的經典題型 —— 倉庫搬運與交換問題,也常被稱為「四格倉庫問題」。
問題簡介
想像你在一個簡化版倉庫中工作,倉庫由 2×2 共四個固定格子組成,裡面放著四個物品:A、B、C、D。起始排列如下:

由於倉庫空間狹小,物品有重量限制,因此一次只能交換相鄰的兩個物品,也就是:
- 上下相鄰(如 A↔C、B↔D)
- 左右相鄰(如 A↔B、C↔D)
❌ 無法進行斜向交換或跨格交換(例如 A↔D 是非法的
任務目標
給定起始狀態與目標狀態,請找出一連串合法交換步驟,將倉庫狀態從起始變成目標。
▸ 起始狀態:ABCD
▸ 目標狀態:DBCA
解法思路
每一個物品排列狀態可以視為圖中的一個節點,而每次合法交換相當於圖中的一條邊。從起始狀態出發,不斷透過合法交換走到鄰近節點,直到走到目標狀態為止。 在這樣的問題中,我們可以使用:
- 廣度優先搜尋(BFS):找出最短步驟路徑。
- 深度優先搜尋(DFS):找解快,但不保證最短。
這裡,我們用 BFS 的思維來列出最短解。
解答步驟
Step 0:初始狀態

Step 1:交換 A和 C→CBDA
Step 2:交換 B 和 D →CDBA
Step 3:交換 C 和 D→DCBA
Step 4:交換 C和 B→DBCA
達成目標!
延伸閱讀推薦
誰該坐哪裡?簡單推理題:三位好友的座位安排
經典邏輯謎題:農夫過河問題(狼、羊、菜)
真話騙子島:城堡在哪裡?邏輯推理挑戰!
只有一瓶能救你:三瓶藥水的生死邏輯挑戰
數學益智題目-9顆球秤重