zoukankan      html  css  js  c++  java
  • German Collegiate Programming Contest 2013:E

    数值计算:

    这种积分的计算方法很好,学习一下!

    代码:

     1 #include <iostream>
     2 #include <cmath>
     3 using namespace std;
     4 const double eps = 10e-5;
     5 
     6 double func(double a, double b, double x)
     7 {
     8     double r = a * exp(- x*x) + b * sqrt(x);
     9     return r*r;
    10 }
    11 
    12 double integrate(double a, double b, double h)
    13 {
    14     unsigned long steps = 1, it = 1;
    15     double V = h*(func(a,b,0)+func(a,b,h))/2.0;
    16     double Vold;
    17     do
    18     {
    19         double tmp = 0;
    20         steps *= 2;
    21         for (unsigned long i = 1; i < steps; i += 2)
    22         {
    23             tmp += func(a, b, (h * i) / steps);
    24         }
    25         Vold = V;
    26         V = (V / 2.0) + ((tmp * h) / steps);
    27     }
    28     while (fabs(V - Vold) > eps);
    29     return V;
    30 }
    31 
    32 int main()
    33 {
    34     double V, a, b, h;
    35     double e_min = 2e100;
    36     int i_min = 0;
    37     int N;
    38     cin >> V >> N;
    39     V /= 3.14159265358979;
    40     for (int i = 0; i < N; i++)
    41     {
    42         cin >> a >> b >> h;
    43         double e = fabs(V -integrate(a, b, h));
    44         if (e < e_min)
    45         {
    46             e_min = e;
    47             i_min = i;
    48         }
    49     }
    50     cout << i_min << endl;
    51     return 0;
    52 }
    View Code

  • 相关阅读:
    表中表效果
    有关div的位置,隐藏显示和移动
    js 获取服务器控件的值
    JavaScript resizeBy()
    js弹出对话框
    js操作select控件的几种方法发布
    javascript
    POJ2135(最小费用最大流模板)
    吐槽(2012/5/21)
    POJ2391(网络流)
  • 原文地址:https://www.cnblogs.com/yours1103/p/3379194.html
Copyright © 2011-2022 走看看