これまた数学問。
https://yukicoder.me/problems/no/1539
問題
正整数Nが与えられる。
の値を誤差10^-8以下で求めよ。
解法
下記シンプソンの近似公式を使う。
元の式にこれを適用すると
になるので右辺を求めればよい。
誤差が十分小さくなることの確認についてはEditorial参照。
int T; int N; void solve() { int i,j,k,l,r,x,y; string s; double pi=atan(1)*4; cin>>T; while(T--) { cin>>N; double d=1.0/(N*exp(1)*pi*pi); double a=exp(1)+4*exp(cos(0.5*d))+exp(cos(d)); a/=(6.0*exp(1)*pi*pi); _P("%.12lf\n",a); } }
まとめ
近似しよう、まではまだしも、これで誤差が許容範囲内かどうか確認するのは大変。