-
題目鏈接:https://www.luogu.org/problem/P4525
-
題解
- 辛普森積分模板題
(這是我寫過的最短的題解了
- 辛普森積分模板題
-
代碼
#include<bits/stdc++.h> using namespace std; double a,b,c,d,l,r; double f(double x) {return (c*x+d)/(a*x+b);} double simpson(double l,double r) {return (r-l)*(f(l)+f(r)+4*f((l+r)/2))/6;} double area(double l,double r,double eps,double last_area) { double mid=(l+r)/2; double l_area=simpson(l,mid),r_area=simpson(mid,r); if(fabs(last_area-l_area-r_area)<15*eps) return l_area+r_area+(l_area+r_area-last_area)/15; return area(l,mid,eps,l_area)+area(mid,r,eps,r_area); } int main() { scanf("%lf %lf %lf %lf %lf %lf",&a,&b,&c,&d,&l,&r); printf("%.6lf\n",area(l,r,1e-7,simpson(l,r))); }
「洛谷P4525」辛普森積分
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.