數學推導- 圓上任取3個點構成三角形
題意:
在圓上取N個點,以至將圓弧分成N等份,求任取3個點能構成多少個銳角三角形
思路:
求所有不同銳角三角形的個數,只需要求出所有三角形的個數\(C(n,3)\),
然后減去鈍角和直角三角形的個數。下面考慮計算:
-
當\(\mathit n\)為偶數:
直角三角形個數:\(n*(n-2)\),即圓上\(\mathit n\)個點任意選擇一個點,這其經過直徑的對點一定要選,剩下的\(n-2\)個點可以任意選。
鈍角三角形個數:\(n*C(\frac{n-2}{2},2)\),即圓上\(\mathit n\)個點任意選擇一個點,則剩余兩個點一定要選該點與經過直徑的對點之間的一側的,為了不重復計數,我們只考慮選擇划分為的兩側中的一側,即\(\frac{n-2}{2}\)中選擇任意兩個。
-
當\(\mathit n\)為奇數:
直角三角形個數:0
鈍角三角形個數:\(n*C(\frac{n}{2},2)\),即圓上\(\mathit n\)個點任意選擇一個點,則剩余兩個點一定要選該點與經過直徑的對點之間的一側的,為了不重復計數,我們只考慮選擇划分為的兩側中的一側,即\(\frac{n}{2}\)中選擇任意兩個。
通過化簡和等價變換可以得到奇偶的情況是同一個公式,即:
最終可以得出答案為
\[C(n,3)-C(n,1)*C(n/2,2); \]
代碼:
long long n;
while(scanf("%lld",&n)!=EOF)
{
printf("%lld\n",((n-1)*(n-2))*n/3/2-((n/2-1)*(n/2)/2*n));
}
一點拓展:
- 圓上任取三個點組成銳角三角形的概率為\(\frac{1}{4}\)
- 圓上任取三個點組成鈍角三角形的概率為\(\frac{3}{4}\)
- 圓上任取三個點組成直角三角形的概率為\(\text 0\)