給定數字 n,希望將以下的數字方塊完全填滿一個正方形:
1 × 1 共 1 塊2 × 2 共 2 塊3 × 3 共 3 塊n × n 共 n 塊這些方塊的總面積符合數學公式:
$$1^3 + 2^3 + \cdots + n^3 = \left(\frac{n(n+1)}{2}\right)^2$$這代表這些方塊的總面積能剛好填滿一個邊長為 n(n+1)/2 的正方形,但如何擺放才能不留空隙或重疊,則是一個組合最佳化問題。
由於 $1^3 + 2^3 + \cdots + n^3$ 的總和形成一個完全平方數,因此理論上存在可能的填充方式。例如當 n = 9 時:
需要 45 塊不同大小的正方形來填滿 45 × 45 棋盤。
本專案使用回溯 + 剪枝來搜尋所有可能的密鋪解法,並應用以下最佳化策略:
n × n),再放小方塊,有助於減少搜尋空間。在 AMD Ryzen 9 5950X 執行
n = 8:
15.76 秒第一組解3427 組解15666.72 秒找到全部 18656 組解n = 9:
1666.04 秒第一組解19 組解2704 組解