将凸多边形区域划分为三角形问题
2013-01-09 18:23
225 查看
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中选择方法,
所以可得总的构造方法数目如上式。
以上都是个人观点,敬请读者批评指正。
一个凸多边形区域,有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中选择方法,
所以可得总的构造方法数目如上式。
以上都是个人观点,敬请读者批评指正。
相关文章推荐
- 凸多边形区域划分为三角形问题
- HNOI'97凸多边形的三角形划分问题。。
- JVM的内存区域划分(面试问题:你了解java内存模型么)
- 区域划分问题总结
- 区域划分问题
- 1112:三角形划分区域
- 区域划分问题总结
- 算法竞赛宝典 递推算法 区域划分问题
- (hdu step 2.3.6)Game of Connections(大数:凸多边形的三角形划分)
- 地图区域划分转换成数学模型解决问题
- 三角形划分区域
- hdu1249(三角形划分区域,直线划分区域,折线划分区域)
- 三角形划分区域
- 经典问题四. 【区间dp】 凸多边形最优三角形划分
- DrawerLayout 空白区域点击穿透问题
- 划分无冲突子集问题
- 三角形问题(5)
- js中点击空白区域时文本框与隐藏层的问题
- 文字跑出DIV区域显示问题
- 数字三角形问题