1. 引
之前做了一道題:
有一個大西瓜, 用水果刀平整地切, 總共切9刀, 最多能切成多少份, 最少能切成多少份?
最少很好求,就是 10 份唄。關鍵是最多是多少。
這個問題可以一般化爲一個很經典的數學問題:
k 個超平面可以把 n 維空間最多分爲多少部分?
我們定義 表示該問題的解,首先我們會給出這個解的遞推公式,然後給出其通項公式。
2. 遞推公式
首先考慮平凡問題解:
-
k 個點可以最多把一條直線分成幾個部分?
個 -
1 個超平面可以最多把 n 維空間分成幾個部分?
2 個
所以:
再考慮一般情況 。我們把它分成兩個部分來看:
- 前面 刀把空間分成了幾份?
我們不知道,但是我們可以用 來表示。
- 第 刀給空間多劃分了幾份?
這個問題就比較關鍵了。爲了方便理解,我們可以從最簡單的二維世界開始講。如果我們已經在平面上劃了 條線,現在劃第 條線,且需要儘可能多的分割平面應該怎麼做呢?
顯然,稍加思考就會發現這是一個貪心問題,可以貪心的求解:只需要讓新的一條線同之前所有的線都相交就可以了。原本的 條線會把新的線分割成 個部分,然後新增出 個空間出來。
如下圖所示,原本三條直線把空間分爲 7 個部分,新增了一條線後,一下子多出來了 4 個空間。
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-T7v9SisW-1584633914640)(demo.png)]
同樣的道理擴展到 n 維空間也是一樣的。原本已經有了 個部分,多了一個超平面後,原本的超平面把新的超平面分割爲 個部分,因此也會多處同樣數量的子空間出來。
綜上所述,我們有:
3. 通項公式
通項公式的具體推導很複雜,具體可以見 這裏。
這裏直接給出結論:
比如在三維空間裏,9 個平面最多可以把空間分爲:
即 130 個部分。