凸包可以通過拉伸橡皮筋找到,使其包含所有點並釋放它。使用橡皮筋解決凸殼?
所以我的問題是:讓我們假設我們有一個機器人(理論機器人)來解決這個問題。 我們給它的座標(我們有n點)。
它使用一些引腳來指示板上的點(O(n))。現在我們選擇一個點(它並不重要,我們選擇哪一個),然後我們檢查它與其他點的距離,如(sqr(x^2 + y^2))。我們找到最大距離。
然後,機器人使用一個橡皮筋,並以步驟2中找到的具有半徑距離的圓的形式將其延伸,並在步驟2中選擇的點的中心。然後釋放該帶。
然後,機器人需要遵循橡皮筋找到的凸包的頂點在O(m),其中m是該凸包包含它們的頂點。(米< = N)
所以算法的總順序(這種方式)應該是O(n)。
我知道我沒有考慮到橡皮筋需要拉伸的時間或需要收縮的時間。
但假設我們有很多點(收縮/拉伸)比O(n)要少得多。
有無論如何模擬橡皮筋在電腦中的效果?
我知道由於排序低頻帶,凸包的最低可能順序被認爲是O(nlg(n))。
有點不清楚橡皮筋的屬性如何在算法上表現出來。機器人如何找到凸包多邊形的頂點?通過觀察多邊形線的方向改變? – Codor 2015-02-23 10:03:27
所以你不是在說這裏的機器人算法(它是一個機器人是無關緊要的,如果我知道它的事實嗎?),而是關於利用橡皮筋創造「免費」船體的事實?不,這一步*是實際算法,如果沒有任何計算工作,就無法得到這個結果。 – Groo 2015-02-23 10:21:32
但在這個例子中,橡皮筋不會做任何犧牲嗎? – kiyarash 2015-02-23 11:13:13