求多边形面积,直线,折现,z型线分平面(数学问题)

在坐标系中求多边型的面积:

思路:

取一个多边形其中一个顶点(x0,y0),从他开始向其他的顶点连线,分成(n-2)个三角形,设每个三角形的另两个顶点为(x1,y1),(x2,y2),则这个三角形面积为
(|(x1-x0)*(y2-y0)|+|(x2-x0)*(y1-y0)|)/2,多边形的面积就是所有三角形的面积和

三角形的面积公式的由来
用向量来表示三角形的面积是1/2*a*b*sinc a,b是向量,sinc是三角形中,a,b两个向量的夹角,  注意:向量是有方向的,方向在该题中也就是从自己选的一个顶点,到其他定点
公式1:
两向量a×b的模=|a||b|sin(a,b)
所以有公式1推出三角形的面积是1/2*|a|*|b|   |a|=(|(x1-x0)*(y1-y0)|  所以三角形面积为(|(x1-x0)*(y2-y0)|+|(x2-x0)*(y1-y0)|)/2


n条直线分平面(求能将平面分成多少个区域)

题目:

在同一个平面上画一个圆及n条直线,每条直线均与其他直线在圆内相交。若没有三条以上直线共点的情况,则这些直线将圆的内部分成几块区域?

思路:

没有三条以上直线共点

1条直线将圆分成2部分
2条直线将圆分成4=2+2部分
3条直线将圆分成7=2+2+3部分
4条直线将圆分成11=2+2+3+4部分
F(n)=F(n-1)+n .....
n条直线将圆分成2+2+3+4+...+n(n>1)=1+n(n+1)/2部分
化简F(n)=1+n(n+1)/2    等比数列求和

n条折线分平面(求能将平面分成多少个区域)

寻找n条折线与2n条直线的关系:
将一条折线将一个平面分成了2部分,两条直线将一个平面分成了4部分,也就是将折线的一个顶点将两条射线延伸,就将本来的一个平面分成了三个平面,以这种方法类推,
可以想到,两条直线比一条折现将平面分成的区域多2个部分,那么2*n条直线就比n条折线多出2*n个部分,所以n条折线将平面分成的部分是:
F(n)=1+2*n(2*n+1)/2 -2*n

n条Z型线分平面(求能将平面分成多少个区域)

寻找n条Z型线与3n条直线的关系:
一个将Z型线的三条直线延伸的一个图形,将平面分成6部分,以为有两条直线是平行的,如果两条直线不平行,那么就会多出一个区域,也就是说这种图型比3条直线相交少了1
个部分,一个将Z型线的三条直线延伸的一个图形将平面分成的区域比一个Z型线将平面分成的区域多了4个部分,本来一个Z型线将平面分成了2个部分,但是如果在两个Z型线的
顶点将两条射线延伸的话,就回将原来的2个平面分成了6个平面,也就是说将原来的一个区域,分成了3个区域,所以一条Z型线就比三条直线少了5个部分,那么n条Z型线就比
3*n条直线少了5*n个部分,所以n条Z型线将平面分成的部分是:
F(n)=1+3*n(3*n+1)/2 -5*n

依照上面的方法可以得出,n对平行线将平面分成的区域时:
F(n)=1+2*n(2*n+1)/2 -n

下面是另一种推到方法:(参考,推荐使用上面的方法)


 分类: C

直线:

条数

最多交点数

平面数

1

0

2

2

1

f(1)+2

3

2

f(2)+3

4

3

f(3)+4

n

n-1(该条数的直线前面的直线总条数)

f(n-1)+增加的平面数=f(n-1)++(交点数+1)=f(n-1)+((n-1)+1)

 

 

 

 

 

 

 


 

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

平行线:

对数

条数

最多交点数

平面数

1

2

0

3

2

4

4=2*2

f(1)+6=f(1)+3*2

3

6

8=4*2

f(2)+10=f(2)+5*2

4

8

12=6*2

f(3)+14=f(3)+7*2

n

2*n

单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2

f(n-1)+单条直线增加的平面数*2=f(n-1)+(交点数+1)*2=f(n-1)+(2*(n-1)+1)*2

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

折线:

折线数

所含直线数

最多交点数

平面数

1

2

0

2

2

4

4=2*2

f(1)+5=f(1)+(2*3-1)

3

6

8=4*2

f(2)+9=f(2)+(2*5-1)

4

8

12=6*2

f(3)+13=f(3)+(2*7-1)

n

2*n

单条直线交点数*2=该对平行线前的直线总条数*2=(2*(n-1))*2

f(n-1)+(单条直线增加的平面数*2-1)=f(n-1)+((交点数+1)*2-1)=f(n-1)+((2*(n-1)+1)*2-1)

hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)

 

 

 

三角形

个数

交点数

增加的平面个数

分割平面总数

1

0

1

2

2

2*3

3*3-3

f(1)+3*3-3

3

4*3

5*3-3

f(2)+5*3-3

4

6*3

7*3-3

f(3)+7*3-3

n

(n*2-2)*3

(2*n-1)*3-3

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

  hdu <wbr>2050 <wbr>折线分割平面(解析,直线,平行线,折线,三角形)



 

代码:

//2012.2.3
//寒假练习
//算法:递推
//f(n)=f(n-1)+((2*(n-1)+1)*2-1)
//解析整理于http://blog.sina.com.cn/s/blog_83ccc39d0100z3l9.html
#include<iostream>
using namespacestd;
int
main()
{

   int
c,n,i;
   int
f[10001]={0,2,7};
   for
(
i=2;i<10001;i++)
   {

       f[i]=f[i-1]+(2*(i-1)+1)*2-1;
   }

   cin>>c;
   while
(
c--)
   {

       cin>>n;
       cout<<f[n]<<endl;
   }

   return
0;
}




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值