このディレクトリの索引

# 出典 :: C/C++の宿題片付けます 131代目 #563 # [1] 授業単元:ソフトウェア工学 # [2] 問題文(含コード&リンク): # (π/4) = tan^-1(1) = 1 - (1/3) + (1/5) - … + (-1)^k * (1/(2k+1)) + … # の公式を用いて、第n項までの多項式近似により円周率を求め、その誤差と計算時間を測定するプログラムを作成せよ。 func(K,X) :- X is (-1)^K * (1/(2*K+1)). 'π'(M,_Pi) :- findsum(U,(between(0,M,K),func(K,U)),S),_Pi is S * 4. 計算時間と円周率近似の誤差(M,N,_Pi,_誤差,_計算時間) :- '一次からM次まで円周率近似の誤差と計算時間を測定する(M,N,_Pi,_誤差,_計算時間). '一次からM次まで円周率近似の誤差と計算時間を測定する(M,N,_Pi,_誤差,_計算時間) :- '一次からM次まで'(M,N), 円周率近似の誤差と計算時間を測定する(N,_Pi,_誤差,_計算時間). '一次からM次まで'(M,N) :- between(1,M,N). 円周率近似の誤差と計算時間を測定する(N,_Pi,_誤差,_計算時間) :- 円周率近似の誤差と(N,_Pi,_誤差), 計算時間を測定する(N,_計算時間). 円周率近似の誤差と(N,_Pi,_誤差) :- 円周率近似の(N,_Pi), _誤差 is _Pi - pi. 計算時間を測定する(N,_計算時間) :- '100回の円周率近似の計算時間から1回の計算時間を得る'(N,_計算時間). '100回の円周率近似の計算時間から1回の計算時間を得る'(N,_計算時間) :- '100回の円周率近似の計算時間から'(N,_100回の円周率近似の計算時間), '1回の計算時間を得る'(_100回の円周率近似の計算時間,_計算時間). '100回の円周率近似の計算時間から'(N,_100回の円周率近似の計算時間) :- get_time(A), '100回の円周率近似の'(N,_Pi), get_time(B), _100回の円周率近似の計算時間 is B - A. '100回の円周率近似の'(N,_Pi) :- between(1,100,_回数), 円周率近似の(N,Pi), _回数 = 100. 円周率近似の(N,_Pi) :- 'π'(N,_Pi). '1回の計算時間を得る'(_100回の円周率近似の計算時間,_計算時間) :- _計算時間 is _100回の円周率近似の計算時間 / 100. findsum(A,B,C) :- findall(A,B,L), sum_list(L,C).