[数学]点、线、面分割问题

平面分割问题

p条直线相交于一点时,分割的图形有 2*(n-1) 个,此时再加一条直线,在 2*(n-1) 的基础上再加 n条,此时为2*n

 

n条曲线,其中有m条相交于一点,每两个曲线都交于两点

 

平面上有n条直线,且无三线共点,问这些直线能有多少种不同交点数。 比如,如果n=2,则可能的交点数量为0(平行)或者1(不平行)。

 1 #include<iostream>
 2 #include<cstdio>
 3 #include<string>
 4 #include<cstring>
 5 #include<map>
 6 #include<set>
 7 #include<algorithm>
 8 #include<cmath>
 9 #include<cstdlib>
10 using namespace std;
11 int f[25][200];
12 void solve()
13 {
14     f[1][0] = 1;
15     for (int n = 2; n <= 20; n++)
16     {
17         f[n][0] = 1;
18         for (int i = 1; i < n; i++)
19             for (int j = 0; j < 200; j++)
20                 if (f[n - i][j]==1)
21                     f[n][j + i * (n - i)] = 1;
22     }
23 }
24 int main()
25 {
26     solve();
27     int n;
28     while (scanf("%d", &n) != EOF)
29     {
30         int t = 0;
31         for (int i = 0; i <= n * (n - 1) / 2; i++)
32             if (f[n][i])
33             {
34                 t++;
35                 if (t != 1)    printf(" ");
36                 printf("%d",i);
37             }
38         printf("\n");
39     }
40 
41     return 0;
42 }
43     
View Code

 

https://blog.csdn.net/somksomk/article/details/8500194

posted @ 2018-12-27 21:22  kaike  阅读(613)  评论(0编辑  收藏  举报