1. 問題
看到一個很有意思的問題:
把面積分別為1,2,3…99,100的100個圓平鋪在一個三角形裡,這個三角形至少有多大? https://www.zhihu.com/question/612605604
然後我就聯想到了這個:

天知道這是怎麼算出來的……
這個問題的本質大概就是尋找多個圓的最小外切三角形(顯然必須相切,不然就不能最小,且每個圓也最好是相切的),在網上查了一下,沒發現什麼相關信息。感覺很有趣,那就稍微研究一下。
由於大小不同的圓過於復雜,這裡先考慮大小相等的圓。
2. 一個圓
嚴格證明
先考慮一個圓的情況。
一個圓的外切三角形面積最小值很好求,設圓半徑為r,三角形三個角為A,B,C,對邊分別為a,b,c,於是S=1/2⋅r(a+b+c),同時可以用r和三個角表示三邊:
a=rcot2B+rcot2Cb=rcot2A+rcot2Cc=rcot2A+rcot2B
所以S=r2(cot2A+cot2B+cot2C),余切函數在(0,π/2)是凸函數,直接用琴生不等式就可以得到:
Smin=3r2cot6A+B+C=33r2
此時A=B=C,是等邊三角形。
幾何直觀
雖然使用琴生不等式很簡單,但似乎不易推廣到多個圓的情況,所以我想到了一種借助幾何直觀的方法。
當然這種方法很不嚴格,只是投機取巧的做法罷了,談不上證明。

如圖,固定兩條切線AC和AB,觀察第三條切線BC,不妨設CD>BD。作圓的切線MN,且切點為MN中點,作NE∥MB。
顯然△MDB∼△NDE,因為ND>MD,所以S△MDB<S△NDE,那麼S△MDB<S△NDC,S△AMN<S△ABC,可知△AMN面積最小。由於對稱性,三邊切點都是中點時面積最小,此時外切三角形是等邊三角形。
3. 兩個圓
分成兩種情況考慮,一是一邊與兩個圓相切,二是三邊都只與一個圓相切。(至於為什麼是兩種,請顯然。)
情況一
本來想直接建系算的,但計算太復雜,超出了我的能力范圍。(算出來大概也求不了最值)
那就故技重施,取切點為中點的情況:

很容易就能看出此時三角形為等腰直角三角形,面積S=(6+42)r2≈11.657r2。
情況二
還是一樣的方法,但計算繁瑣一些。

設底邊長為2x,根據勾股定理列方程:
((3r)2+x2+3r)2+x2=(2(3r)2+x2−r2)2
解得x=21(317−5)r,於是可以算出面積:
S=4617−10⋅(17+9)r2≈12.595r2
比較
那麼就可以對比面積了,顯然第一種情況面積更小一些。於是得出結論:兩個圓的最小外切三角形是等腰直角三角形,面積最小值S=(6+42)r2。
雖然不能嚴格證明,但這確實是我找到的最小了。
還有一個問題是:為什麼情況一比情況二面積小?
兩種情況都是等腰三角形,可以從中間切開考慮,得到兩個直角三角形都包含了一個圓,情況二的空隙更大一些,直覺上說就是這樣(唉說了跟沒說一樣)。
提出猜想1:情況一面積始終比情況二小,且兩情況的差距會隨圓個數的增加而增加。
4. 三個圓
這裡要分3種情況考慮:
- 類似上述情況一
- 類似上述情況二
- 平面六角密堆積式排列,外切等邊三角形
從直覺來看,顯然情況3是最小的,且情況1小於情況2,但我沒有什麼簡單的比較方法,那就干脆全部算出來好了(順便鍛煉計算能力)。
情況一
直接建系如圖,並設圓的半徑為1.

設A點坐標(0,a),B點(b,0),AB中點C坐標(b/2,a/2),可得AB的解析式:
AB:y=−bax+a
AB與圓在
C點相切時,
OC⊥AB,由此可以算出
OC的解析式:
OC:y=abx+2aa2−b2
根據 “OC過O點” 和 “C在圓O上” 列出方程:
2⋅ab+2aa2−b2=1(21b−2)2+(21a−1)2=1
整理一下就出現了喜聞樂見的一元四次方程:
x4−12x3+49x2−80x+48=0
這、完全不會解。
沒關係,還有 Wolfram|Alpha,輕松得到答案為:
b=31(33183+62+362−3183+8)≈5.15276
繼續代回式子,得到:
S=ab≈18.727
所以S≈18.727r2
情況二
這種情況簡單許多,和一個圓時類似,設底邊為2x,根據勾股定理列方程(圖都懶得畫了):
((5r)2+x2+5r)2+x2=(2(5r)2+x2−r2)2
解得x=21(533−21)r,於是算出面積:
S=2121(533−21)(1033+58+10)r2≈20.382r2
情況三
看起來很好算,實際上確實很好算。如果建系死算大概會比較復雜,但直接算高CF就會輕松很多。

首先易知CD=r,然後由於△OAB是等邊三角形,OD=3r,由於△OEF是帶60°的直角三角形,OF=2OE=2r,所以CF=3+3,容易算出三角形面積:
S=(6+43)r2≈12.928r2
比較
到這裡,差距就很明顯了,情況三顯著小於情況一和二,甚至與兩個圓的最小外切三角形面積相差無幾,看來這的確是一種節省空間的排列方式。因此對於較多的圓,前兩種情況可以不用考慮了,差距只會越來越大。
提出猜想2:對於三角形數個圓,最小外切三角形必然是類似情況三的等邊三角形。
可以總結出這類三角形的面積公式:
若圓的個數為k(k+1)/2,則可算出高為h=1+2+(k−1)3=3+(k−1)3,由此得到三角形面積S=3k2+(6−23)k+43−6。
那麼需要特別考慮的就是非三角形數個圓的情況。
三角形數:該數目個點或等大圓在等距情況下可排列成三角形,對於相切的等大圓,即可排列成等邊三角形的現狀。
前10個三角形數為:1, 3, 6, 10, 15, 21, 28, 36, 45, 55
5. 四、五、六
經過以上的探究,總結出兩條經驗:
- 若某條線段僅與一個圓相切,盡量使切點在切線段的中點
- 盡量排列緊密,最好以平面六角密堆積式排列
接下來對四、五、六個圓的情況進行分析。為方便起見,接下來默認r=1。
情況一
六個圓用平面六角密堆積式排列,形成的外切三角形同時也可容納四個或五個圓:

這時候直接代公式就可以了,k=3:
S=3k2+(6−23)k+43−6=93+18−63+43−6=12+73≈24.124
情況二
對於四個或五個圓,還有另一種面積較小的情況如圖,切點C為AB中點。

還是建系計算,思路與前述相同。
設A(0,a),B(b,0),可以列出方程:
ab+2aa2−b2=3(21b−1)2+(21a−3)2=1
根式解很復雜,所以就直接寫近似結果了:b≈3.759,S≈26.132>24.124
情況一在空缺兩位的情況下,空間利用率仍比情況二高,再一次展現了平面六角密堆積式的優越性。事實上,觀察情況二的圖可知情況一等價於下層兩圓移至兩邊,可以在底不變甚至減小的情況下減小高,如此能夠減小面積就不顯奇怪了。
情況三
當然,情況一雖排列合理,但終究空缺兩位,對於四個圓,很容易發現更小的外切三角形,即圖中左下的直角三角形:

觀察圖形可只此直角三角形恰為10個圓的最小外切三角形的一半,於是可以用前述方法先求大等邊三角形的面積,除以2即為直角三角形面積:
S=(3n2+(6−23)n+43−6)/2=(163+24−83+43−6)/2=9+63≈19.392
對於像4這樣可以形成等邊三角形的一半的數,不妨稱其為半三角形數。半三角形數就是三角形數減去分割線通過的圓,再除以二。由此可以得到半三角形數的公式:
a={n2/4,(n2−1)/4,n is evenn is odd
此時突然發現6也是半三角形數:6=(52−1)/4,於是作出6個圓的外切直角三角形:

然後用和前面一樣的方法計算面積:
S=(3n2+(6−23)n+43−6)/2=(253+30−103+43−6)/2=12+9.53≈28.454
明顯比上面的情況一大。
同時是三角形數和半三角形數的情況不多見,可通過解方程n2/4=k(k+1)/2或(n2−1)/4=k(k+1)/2得到。
1000以下共有如下幾組解(n表示半三角形層數,k表示三角形層數,c表示對應圓的個數):
n=2,kn=12,kn=70,kn=408,k=1,c=1=8,c=36=49,c=1225=288,c=41616
或:
n=5,kn=29,kn=169,kn=985,k=3,c=6=20,c=210=119,c=7140=696,c=242556
除去相等的情況,三角形數和半三角形數分布很不均勻。兩個三角形數之間的半三角形數分布不均,因此對於三角形數個圓,不能確定究竟是其排成的直角三角形,還是稍大於其的三角形數排成的等邊三角形面積更小。
例如,4個圓排成的直角三角形面積小於6個圓排成的等邊三角形,而9個圓排成的直角三角形面積(約39.249)大於10個圓排成的等邊三角形(約38.785).
提出猜想3:在猜想2的基礎上,對於上述半三角形數個圓(不等於某個三角形數),最小外切三角形可能為等邊三角形的一半(帶60°的直角三角形),面積為:
S=23n2+(3−3)n+23−3
也可能為稍大於其的三角形數排成的等邊三角形,面積為:
S=3k2+(6−23)k+43−6
不需要考慮其他的情況。
6. What about 100?
雖然沒有得到一般的結論(甚至特殊的結論也沒有證明),但對這個問題大致了解並提出猜想後,100個圓的情況也大致可以算出了。
100恰是半三角形數,於是根據猜想3,只需算100個圓排成的直角三角形面積和105個圓排成的等邊三角形面積,分別為:
S1=23n2+(3−3)n+23−3=57+1823≈372.233
S2=3k2+(6−23)k+43−6=78+1723≈375.913
大概就可以得到最小面積S1=57+1823≈372.233。
7. 不等大的情況
不等大的情況比等大的復雜很多,關鍵在於圓與圓相切的方式更多樣,需要考慮的情況多得多。需要注意的是不能太高估空隙的容納能力,本來我以為大圓相切產生的空隙足夠將小圓全部容納其內,結果發現面積為100、99、98的三個圓相切產生的空隙僅能容納面積大約為2.369的小圓,面積為100、99、98、97的四個圓相切產生的空隙也只能至多容納面積大約為16.7的圓。
對於這個問題我還完全沒有思路,還得留到以後解決。