性質一:最小圓覆蓋是唯一的
證:若存在兩個最小圓,如下
顯然所有點只能存在於兩個圓的交集中,於是以中間那條實心藍線為直徑做一個圓,這個圓顯然更小而且能夠覆蓋所有點
性質二:若我們已經用最小覆蓋圓覆蓋了所有點,設這些點的點集為\(S\),現在我們新加入一個點\(p\),若\(p\)不在\(S\)的最小覆蓋圓的內部,則\(p\)一定在{\(p\)}∪\(S\)的邊上
證明:假設\(p\)在最小覆蓋圓的外部,如下圖:
由於\(C_2\)覆蓋了\(S\),所以\(r_{C_2}≥r_{C_1}\),由性質一,有\(r_{C_2}>r_{C_1}\),於是可以將\(C_2\)不斷縮小,使其同時包含\(S\)和\(p\),這與\(C_2\)是最小圓覆蓋矛盾
求最小覆蓋圓思路:首先將點隨機化保證複雜度。然後迴圈,假設迴圈到\(i\),我們已經求出了\(1\) ~ \(i-1\)的最小覆蓋圓,如果\(i\)在這個最小覆蓋圓內部,則圓不變,否則的話由性質二可以知道\(i\)一定在新的最小覆蓋圓的邊上。開一個內層迴圈,假設迴圈到\(j\),我們已經求出了\(1\) ~ \(j-1\)且\(i\)在圓邊上的最小覆蓋圓(我們要求的是\(1\) ~ \(j\)且\(i\)在圓邊上的最小覆蓋圓),如果\(j\)在這個最小覆蓋圓內部,則圓不變(此時即使多了條件\(i\)在圓邊上,我們仍然可以類似證明性質一),否則的話\(j\)一定在新的最小覆蓋圓的邊上(此時即使多了條件\(i\)在圓邊上,我們仍然可以類似證明性質二)。再開一個內層迴圈,假設迴圈到\(k\),我們已經求出了\(1\) ~ \(k-1\)且\(i,j\)在圓邊上的最小覆蓋圓(我們要求的是\(1\) ~ \(k\)且\(i,j\)在圓邊上的最小覆蓋圓),如果\(k\)在這個最小覆蓋圓內部,則圓不變(此時即使多了條件\(i,j\)在圓邊上,我們仍然可以類似證明性質一),否則的話\(k\)一定在新的最小覆蓋圓的邊上(此時即使多了條件\(i,j\)在圓邊上,我們仍然可以類似證明性質二),而此時我們已經確定了三個點在圓邊上,於是可以唯一確定圓,從而求出了\(1\) ~ \(j\)且\(i\)在圓邊上的最小覆蓋圓,進而可以求出\(1\) ~ \(i\)的最小覆蓋圓
時空複雜度都是\(O(n)\)(具體證明見影片39:30)
如果要求最小覆蓋球,則是“四點確定一個球”,其餘類似