前言:在學習演算法的遞推思想過程中遇到了幾個平面分割問題,這些問題使我自身在思考過程中遇到了阻力,所以下面首先給出這些問題的解法及思路。並且因為這幾個問題雖然難度適中,但比較具有的代表性,所以通過分析解決這些問題的思路進而給出平時如何去判斷並找出遞推關係一般思路。(下面所涉及的平面都有邊界)
可以發現當在平面內(⚪內)兩直線沒有交點則將⚪分為3部分,而有交點則會將⚪分為4部分。並且,當只有一條直線,要再添一條直線時,可以發現,即使不與已有的直線相交仍然會多出一塊兒區域,而若相交的話則會多出一塊兒區域。
所以此時給出猜想:若新增一條直線並不與任何一條已有直線相交,則只會增加一塊兒區域,而每和一條直線相交則會增加多增加一塊兒區域。接下來我們再增加一條直線來看看我們的猜想是否正確。
從上面這三個圖我們可以發現,當加上第三條線的時候,再產生兩個交點時產生的區域最多,且為剛才的結論,即因為多了兩個交點(即和兩條直線相交),則應該增加3個。(因為這是題目而非研究的課題,所以一般發現的遞推式可以符合舉出的例子就可以判斷其對了,因為並非嚴謹的證明。當然也不排除碰巧符合的情況。)
解答:
解答:
總結:首先因為計算機很適合處理遞迴問題,並且題目中可以用遞迴處理的問題不在少數。所以通過多做題可以在拿到乙個新題目的時候,初步分析可以判斷該題是否一定不能用遞迴處理,而只要該題有可能用遞迴處理,那麼找出遞迴關係則變成了關鍵,那麼如何找遞迴關係呢?
由問題一的求解得出,我們可以先在規模小的情況下分析,甚至是盡可能小的規模下分析,因為很多遞迴都是對題目中的任何情況都適用。
因為遞迴往往伴隨著規模的逐步增加,並且遞迴關係式也是新的元素和前乙個或前幾個元素的關係。那麼由問題二的求解得出,我們可以將關注點只專注於新增元素,並由此分析與之前的元素的關係。
由問題一、二共同得出,處理遞迴問題時要心中只區分新和舊元素兩部分,避免由新元素到上乙個元素再到上上乙個元素,這樣陷入思維的迴圈中。我們只關心當下,而將之前當成整體。
分割區域問題彙總
註明出處,摘自 1 n條直線最多分平面問題 題目大致如 n條直線,最多可以把平面分為多少個區域。析 可能你以前就見過這題目,這充其量是一道初中的思考題。但乙個型別的題目還是從簡單的入手,才容易發現規律。當有n 1條直線時,平面最多被分成了f n 1 個區域。則第n條直線要是切成的區域數最多,就必須與...
區域生長法分割
區域生長法的基本思想就是將具有相似性的畫素集合起來形成乙個區域。具體做法就是,首先選擇乙個種子點,通過比較種子點鄰域的相似性,將鄰域中滿足相似性準則的畫素歸入種子點所在的區域,然後將這新的畫素點定為種子點,重複上述過程,直到沒有滿足相似性準則的新的鄰域畫素點產生為止。通過區域生長,乙個區域就形成了。...
區域生長分割點雲
include include include include include include include include include include intmain int argc,char argv pcl search search pointxyz ptr tree boost s...