HDU 1466 計算直線的交點

Problem Description

平面上有n條直線,且無三線共點,問這些直線能有多少種不同交點數。
比如,如果n=2,則可能的交點數量爲0(平行)或者1(不平行)。

Input

輸入數據包含多個測試實例,每個測試實例佔一行,每行包含一個正整數n(n<=20),n表示直線的數量.

Output

每個測試實例對應一行輸出,從小到大列出所有相交方案,其中每個數爲可能的交點數,每行的整數之間用一個空格隔開。

Sample Input

2
3

Sample Output

0 1
0 2 3

題目分析:

將n條直線排成一個序列,直線2和直線1最多隻有一個交點,直線3和直線1和直線2最多有兩個交點......直線n和其他n-1條直線最多有n-1個交點,由此得出n條直線互不平行且無三線共點的最多交點數:

max=1+2+...+(n-1)=n(n-1)/2;
以n=4爲例,

1,第四條與其餘直線全部平行-》無交點

2,第四條與其中兩條平行,交點數爲(n-1)*1+0=3;

3,第四條與其餘一條平行,這兩條平行線與另外兩條直線的交點數爲(n-2)*2=4,另外兩條直線即可能平行也可能相交,因此可能的交點數爲:(n-2)*2+0=4 或者(n-2)*2+1=5

4,第四條直線不與任何一條直線平行,交點數爲:(n-3)*3+0=3 或者(n-3)*3+2=5 或者(n-3)*3+3=6

即n=4時,可能的交點數爲0,3,4,5,6

從上述過程中發現:

n條直線的焦點方安數 =(n-r)條平行線與r條直線交叉的交點數 + r條直線本身的交點方案

                               =(n-r)*r+r條之間本身的交點方案數(1<= r <=n)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章