zoukankan      html  css  js  c++  java
  • HDU 1724 自适应辛普森法

     1 //很裸的积分题,直接上模板
     2 #include<stdio.h>
     3 
     4 #include<math.h>
     5 
     6 int aa, bb;
     7 
     8 
     9 //函数
    10 double F(double x){
    11     return sqrt((1-x*x/aa/aa)*bb*bb);
    12 }
    13 
    14 
    15 //三点simpson法
    16 double simpson(double a,double b){
    17     double c=a+(b-a)/2;
    18     return (F(a)+4*F(c)+F(b))*(b-a)/6;
    19 }
    20 
    21 
    22 //自适应simpson公式(递归过程)。一直整个区间[a,b]上的三点simpson值A
    23 double asr(double a,double b,double eps,double A){
    24     double c=a+(b-a)/2;
    25     double L=simpson(a,c); double R=simpson(c,b);
    26     if(fabs(L+R-A)<=15*eps){
    27         return L+R+(L+R-A)/15;
    28     }
    29     return asr(a,c,eps,L)+asr(c,b,eps,R);
    30 }
    31 
    32 
    33 //自适应simpson公式(主过程)
    34 double asr(double a,double b,double eps){
    35     return asr(a,b,eps,simpson(a,b));
    36 }
    37 
    38 int main(){
    39     int t;
    40     scanf("%d",&t);
    41     while(t--){
    42         int l,r;
    43         scanf("%d%d%d%d",&aa,&bb,&l,&r);
    44         printf("%.3lf
    ",asr(l,r,1e-6)*2);
    45     }
    46 }
  • 相关阅读:
    网络之传输层
    局域网的物理组成
    网络基础
    RAID磁盘阵列
    mount挂载和交换分区swap
    Linux文件系统
    sed命令基础2
    sed命令基础
    LVM基础
    磁盘配额基础
  • 原文地址:https://www.cnblogs.com/Stomach-ache/p/3703198.html
Copyright © 2011-2022 走看看