遞迴之線 面切割問題

2021-09-12 07:58:13 字數 989 閱讀 2975

1 .直線切割面

有n-1條直線時,平面最多被分成了f(n-1)個區域。第n條直線要是切成的區域數最多,就必須與每條直線相交且不能有同一交點。第n條直線與前n-1有n-1個·交點,增加了n-2條線段和兩條射線。增加了n-2+2個平面區域。

即f(n)=f(n-1)+n

=f(n-2)+n-1+n

=f(1)+2+3+4+5...+n

因為f(1)=2

所以f(n)=n*(n-1)/2+1

2 .折線分割面   

例題    

有n-1條折線時,平面最多被分成了f(n-1)個區域。第n條折線要是切成的區域數最多,就必須與前n-1條折線的邊即2*(n-1)線段相交且不能有同一交點。則新增線段數為4*(n-1),射線數為2,折線本身相連的兩線段增加乙個平面區域。

即f(n)=f(n-1)+4(n-1)+2-1

=f(n-1)+4*n-3

=2*n*n-n+1

3 .三角形分割平面

例題:有n-1個三角形時,平面最多被分成了f(n-1)個區域。第n個·三角形要是切成的區域數最多,就必須與前n-1三角形都相交。第n個三角形的每一條邊都被分割成了2*(n-1)-1條線段和兩條半個的線段。相當於增加了2*(n-1)條線段。整個三角形增加了3*2*(n-1)條線段,所以也就是增加了6*(n-1)個面。

即f(n)=f(n-1)+6*(n-1)

=3*n*(n-1)+2

這類題也可以直接代入方程組解方程組獲得它的遞推表示式。如果計算能力可以,我還是比較喜歡這個簡單粗暴的方式,分析找規律腦殼疼啊。這類題如果是二維的,就是線切割面,就代入一元二次方程組,如果是三維的,即面切割體,就代入一元三次方程組。

例如折線分割面   這道例題,一元二次方程a*x^2+b*x+c=d,f(1)=2,f(2)=7,f(3)=16。列出a*1^2+b*1+c=2

a*2^2+b*2+c=7

a*x^3+b*3+c=16

解出a=2,b=-1,c=1,則f(n)=2*n*n-n+1。

鋼管切割遞迴

serling公司購買長鋼條,將其切割為短鋼條 切割工序本身沒有成本支出。公司管理層希望知道最佳的切割方案。假定我們知道serling公司 一段長為i英吋的鋼條的 為pi i 1,2,單位為美元 鋼條的長度均為整英吋。長度i 1 2 3 4 5 6 7 8 9 10 pi 1 5 8 16 10 1...

動態規劃之鋼條切割問題

鋼條切割方案自底向上 public class cutrodbottom2up public static void main string args private void start private cutrodsolution bottomupcutrod int n crsl.r j q ...

鋼條切割問題

動態規劃的一般步驟 1.刻畫乙個最優解的結構特徵 2.遞迴定義最優解的值 3.計算最優解的值,通常採用自底向上的方法 4.利用計算出的資訊構造乙個最優解 利用動態規劃方法求解類似鋼條切割方案的這一類遞迴問題,可避免反覆求解相同的子結構,下面是樸素遞迴演算法和用動態規劃設計的遞迴演算法的相應實現。鋼條...