- 直线:有n条直线,最多把平面分割为n(n+1)/2+1个区域。对于第i条直线,最多的情况是和前面已有直线相交且交点不重合,能再增加i个区域,则当前共有区域数为1 (本身具有的区域)+ 1(第一条直线切后增加) + 2 (第2条直线切后增加)+ ……+ i(第i条直线切后增加)
- 封闭图形
-
三角形:有n个三角形,最多把平面分割为3n(n-1)+2个区域。
当n-1个三角形时,区域面积数为 f(n-1) 。
要区域数最多,那么第n个三角形就必须与前n-1个三角形相交。
则第n个三角形的一条边就被分割成 2*(n-1)-1条线段与两个半条的线段 ,
即相当于2*(n-1)条线段。则第 n 个三角形被分割成 3* 2 * (n-1)条线段。
则增加了 6*(n-1)个面。
-
圆形:有n个圆形,最多把平面分割为n^2-n+2个区域
当n-1个圆时,区域数为f(n-1).那么第n个圆就必须与前n-1个圆相交,
则第n个圆被分为2(n-1)段线段,增加了2(n-1)个区域。
-
#include<stdio.h>
int main(){
//n条直线可以分割出n*(n+1)/2 + 1个平面(每次加新直线时,保证新家直线和已有直线都相交且交点不重合)
int ans = 20 * 21 / 2 + 1;
for(int i = 1; i <= 20; i++){
//每新加一个圆,都至多和一条直线分为两块,一个圆分为两块
ans += 20 * 2 + (i - 1) * 2;
}
printf("%d", ans);
return 0;
}