1. 程式人生 > >凸多邊形區域劃分為三角形問題

凸多邊形區域劃分為三角形問題

RT:

一個凸多邊形區域,有N條邊,將其劃分為三角形區域,問共有多少種分割方法。

1.我們從最簡單情況開始:N=3,f(3)=1;

2.當N=4,f(4)=2;

3.N邊時

我們從節點1開始考慮,要想分割成三角形區域,1不能和與它相鄰的點連線,所以1可以連線3,4,...,N-1;

假設1連線i,則分割成的兩個區域分別為i凸多邊形和N+2-i凸多邊形,即對於節點1,f1(N)=f(3)f(N+2-3)+f(4)f(N+2-4)+...+f(N-1)f(3);

N多邊形共N個點,對應於每個點有f1(N)中分割方法,總的分割方法為f(N)=Nf1(N),但是每增加一條邊,其連線兩個點,所以在f(N)中有

一半是重複情況,所以最終的分割方法為:

擴充套件:與此類似的問題還有:

1.n個節點可以構造多少不同的二叉樹

 (1)n=0時,f(0)=1;

 (2)n=1時,f(1)=1;

 (3)n=2時,f(2)=4;

 (4) f(N)=N(f(0)f(N-1)+f(1)f(N-2)+...+f(i)f(N-1-i)+...+f(N-1)f(0));採用遞迴的思想,

      f(i)f(N-1-i)中f(i)表示左子樹有i個節點可構造的二叉樹數目,f(N-1-i)表示右子樹有N-1-i個節點可構造的二叉樹數目;

      兩者相乘表示左右分別為i,N-1-i個節點時候這個大的二叉樹的構造數目,又由於根節點的選擇有N中選擇方法,

  所以可得總的構造方法數目如上式。

轉自http://www.cnblogs.com/lixiaohui-ambition/archive/2013/01/09/2853519.html