zoukankan      html  css  js  c++  java
  • 数学推导- 圆上任取3个点构成三角形

    数学推导- 圆上任取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-1)*(n-2))*n/3/2-((n/2-1)*(n/2)/2*n));
        }
    

    一点拓展:

    • 圆上任取三个点组成锐角三角形的概率为(frac{1}{4})
    • 圆上任取三个点组成钝角三角形的概率为(frac{3}{4})
    • 圆上任取三个点组成直角三角形的概率为( ext 0)

    证明可以参考:https://zhuanlan.zhihu.com/p/69530841

    本博客为本人原创,如需转载,请必须声明博客的源地址。 本人博客地址为:www.cnblogs.com/qieqiemin/ 希望所写的文章对您有帮助。
  • 相关阅读:
    JAVA 关键字
    github 上传代码到仓库

    创建链表及使用
    关于MAP文件的使用(转贴)
    styledcomponent使用(一)
    关于EDM模型中多个实体之间循环引用导致保存数据失败的解决方案一例
    C#格式化字符串
    [原]存取AVD设备SD卡中的文件
    NSStirng、NSArray、以及枚举(Method小集合)
  • 原文地址:https://www.cnblogs.com/qieqiemin/p/13779979.html
Copyright © 2011-2022 走看看