第4回レポート課題の解答例

課題 4-1 の解答例

入力する数値により i は 3,4,5,6,7 の五つのいずれかになる。
よって while /* c1 */ は i+1 回の判定を行ない、ループは i 回の
反復をする。次に、そのループのなかでは /* c2 */ の if 文により
c2,p3,p5, 或は c2,p4,p5 のどちらかのルートを通過して i 回の
反復後 c1,p6 で終わる。

例として i が 3 の場合は
 p1 p2   c1 c2 p4 p5   c1 c2 p3 p5   c1 c2 p4 p5   c1 p6

課題 4-2 の解答例

n個のデータの平均と標準偏差を求める擬似コード

(方式1) { i=1; s=0; while(i<=n){ s=s+x[i]; <--※1 i=i+1; } ave=s/n; i=1; s=0; while(i<=n){ d=x[i]-ave; s=s+d*d; i=i+1; <--※2 } v=s/n; sd=sqrt(v); }
(方式2) { i=1; s=0; <--※1 t=0; while(i<=n){ s=s+x[i] <--※2 t=t+x[i]*x[i] i=i+1; } ave=s/n; ave2=t/n; v=ave2-ave*ave; sd=sqrt(v); }

課題 4-3 の解答例

(A) b-a > ε ( >= でも可)
(B) (a+b)/2
(C) a

理由
(A) 区間の幅b-aが、目的の精度εより大きい間は区間の更新を繰り返す。
(B) 中点を求める式。
(C) 現在の区間(a,b)を新しい区間(c,d)に更新する。

課題 4-4 の解答例