zoukankan      html  css  js  c++  java
  • HDU 6362(求椭圆中矩形周长的期望 数学)

    题意是给定一个椭圆标准方程的a,b(椭圆的长半轴长和短半轴长),在【0,b】内取一个数,则过点(0,b)且平行于x轴的直线与椭圆交于两点,再将此两点关于x轴做对称点,顺次连接此四点构成矩形,求出这些矩形周长的期望。

    一开始的时候,想到所有矩形的周长和积分就是椭圆面积的两倍,但矩形的个数应该是 a + b,可是与样例不符......又尝试了矩形个数为a,b,π/2,均不对。再次读题,发现矩形的选择是在【0,b】中选的,那么矩形的个数就应该是b个。

    依照题意,用积分的方法做,可得:

     

    积分后得:a*b*π+2*b*b;再除以b,得到期望。

    要注意的是题目要求保留到小数点后六位,但不是四舍五入的方式,而是去尾法,这里本人用的方法是先乘以1000000去尾,再除以1000000。

    但后来发现网上还有好办法:将结果减去0.0000005,再直接四舍五入保留到后六位。妙啊~~

     1 #include <cstdio>
     2 #include <cmath>
     3 using namespace std;
     4 int main()
     5 {
     6     int t,n,m;
     7     const double p = acos(-1);
     8     scanf("%d",&t);
     9     while (t--)
    10     {
    11         scanf("%d%d",&n,&m);
    12         double ans = n*p+m*2.00;
    13         ans *= 1000000;
    14         ans = floor(ans);
    15         ans /= 1000000;
    16         printf("%.6lf
    ",ans);
    17     }
    18     return 0;
    19 }
    View Code

    个人认为椭圆面积*2应该等于所有矩形周长和,如图示,

    但结果是2*a*b*π,而非积分结果a*b*π+2*b*b,我觉得应该是椭圆上点的分布不均导致的,具体的因为才疏学浅,无法详细描述。仍在考虑中......

    日后若能有更好的想法,再来完善。 希望看到的大神不吝赐教 orz
  • 相关阅读:
    极客技术专题【008期】:CSS3核心技术:选择器
    10670 Work Reduction (贪心 + 被题意坑了- -)y
    hdu 4617 : Weapon
    [poj 2186]Popular Cows[Tarjan强连通分量]
    caldera
    linux内核书籍
    DedeCMS Error:Tag disabled:"php"的解决办法
    China特色创新现状
    麒麟OS剽窃
    国产系统
  • 原文地址:https://www.cnblogs.com/Taskr212/p/9455586.html
Copyright © 2011-2022 走看看