數學/演算法:正方形內有5個點,為什麼最近點對的距離小於邊長?

一個點位於左邊的三角形中,另一個點位於右邊的三角形中,距離為兩點之間的連線(例如pq)

而在左右兩個d*d正方形區域內,最多都只能含有4個點。如果超過4個點,則這個正方形區域內至少存在一個點對的距離小於d。

以上的結論需要如何證明呢?

------------------------------------------------------

以上的問題是我從《編程之美》的求兩點之間最短距離抽出的一個知識點,如果看過這本書的朋友有沒有遇到以上問題呢=。=書上直接就給出結論了,怎麼想都不明白


樓上的證明看起來比較繁瑣,我來個簡單的。

把正方形4等分成4個小正方形,邊長d/2。由抽屜原理,5個點中,至少有兩個點在同一個小正方形里,這兩個點距離最大不超過frac{sqrt{2}}{2}d<d,證完。


可以用反證法,假設正方形ABCD內含有4個以上的點,這些點兩兩之間的距離大於或等於d

考慮這些點中的4個點EFGH,四個點兩兩之間的連線線段有6條,這6條線段兩兩相交於這4個點有12個夾角,我們能證明這12個夾角必有一個角大於或等於90度。於是由余弦定理得到有兩點間的距離大於或等於sqrt{2} d,從而證明了這個四個點只能分布在正方形的四個頂點上,又第5個點也在正方形的內部,它到這4個點的距離不可能都大於或等於d,因此假設不成立,命題得證。

關於為什麼必然有一個角大於等於90度,四個點之間的關係可能有以下情況

情況一:四個點中存在三點共線,則明顯有結論;

情況二:四個點中任意三點不共線,考慮其中的三個點E,F,G,它們形成的三角形為非銳角三角形,則明顯有結論;

情況三:四個點中任意三點不共線,考慮其中的三個點E,F,G,它們形成的三角形為銳角三角形,且第四個點H在三角形內,則三條線段EH,FH,GH形成的三個角的和為360度,這三個角不可能都小於等於90度,所以必有一個大於或等於90度的角。

情況四:四個點中任意三點不共線,考慮其中的三個點E,F,G,它們形成的三角形為銳角三角形,且第四個點H在三角形外,則可以作一個凸四邊形。由四邊形內角和為360度,這個四邊形的四個內角和不可能都小於等於90度,則必有一個大於等於90度的角


與此類似的,

最近點對問題中,給定左平面一點p,右平面中與p距離最近的點的候選個數不超過6。

證明與@npbool 回答類似。

from 編程之美:平面最近點對


推薦閱讀:

一個人談過k次戀愛(k大於等於12),那麼他集齊十二星座的概率是多少?
怎麼定義數學上的「顯而易見」?
有沒有能讓卡西歐科學計算器計算時間最長的式子?
可以用一個點記錄下整個世界嗎?
清華學神韓衍雋 15 門課程 100 分在整個清華乃至中國強到什麼程度?

TAG:演算法 | 數學 | 編程 | 幾何學 |