第8回(2000年12月19日)講義録
〜中間試験問題〜
渡邊誠一郎
渡邊@司令部 だ.
諸君は今日まで電脳工作員となるための特訓を受けてきた.
いよいよ今日は,その成果を見せてもらおう.以下の任務を
見事に遂行した者は,電脳工作員として認められ,授業の
単位取得の第一関門を突破したことになる.
失敗した者に,明日はない... 好運を祈る.
-------------------------------------------------------
任務指令書: 任務コード名は REP_millennium
任務開始は,12月19日 9時30分,任務は極秘に遂行すること.
なお,司令部への連絡には,氏名と暗号名を必ず書いた電子
メールを使うこと.司令部のアドレスは,わかっているな...
暗号名は,君が生まれてから今日までの日数(生まれた日を含む)
を生年月日とともに併記したものだ.
例 1964年3月18日,13426日
まず,~/f77 の下に REP という名前のディレクトリを作成せよ.
以後の任務はこのディレクトリ下で遂行すること.
次に,FORTRANプログラムの作成だ.
まずは,小手調べ.
a(1) = 1
a(2) = 1
n が 2以上なら
a(n+1) = a(n-1) + a(n) ( a(n) が奇数の場合)
a(n+1) = a(n-1) + a(n)/2 ( a(n) が偶数の場合)
を満たす数列a(n)の第m項を求めるプログラムを作成せよ.
そして,できたら,m=33 つまり a(33) の値を計算し,まずは
司令部にメール(氏名,暗号名を書くこと)でその値を連絡せよ.
---------------
連絡を終えたら,次の本題にとりかかれ.
次のような形式のデータファイル(ファイル名 my.data とせよ)
を読み込み,その各欄毎の平均値,データの最大値と最小値の差,
および標準偏差を計算し,表示するプログラムを作成せよ.
なに,標準偏差を忘れた? そんなお間抜けは,末尾を見よ!
データファイルの形式 以下で [I] は整数,[R]は実数を表す
行数M[I] 欄数N[I]
1[I] 欄1行1の値[R] 欄2行1の値[R] ... 欄N行1の値[R]
2[I] 欄1行2の値[R] 欄2行2の値[R] ... 欄N行2の値[R]
...................
M[I] 欄1行Mの値[R] 欄2行Mの値[R] ... 欄N行Mの値[R]
例えば
3 2
1 6.1234 -7.2678
2 1.6789 2.0754
3 0.0789 -9.6098
のようなデータファイルだ.ただし行数と欄数はいくつでも対応できる
ようなプログラムである必要がある.
簡単すぎたかな....
作成できたと確信したら司令部にメール(氏名,暗号名を書くこと)
で連絡せよ.
折り返し,こちらで密かに入手した謎のデータへのアクセス法を
メールする.作成したプログラムを使い,そのデータの平均値,
最大値と最小値の差,および標準偏差を各欄毎に計算せよ.
また,データ番号(各行の先頭の整数)を横軸に,データの値を縦軸に
して,欄毎に別の線で重ねてグラフにせよ.
そうだ,特殊電脳工作ツール mplot を使えば簡単だ.
作成したグラフはプリンターに出力し,各自手元に保管せよ.
以上より,渡したデータは何か推定せよ.
そして司令部へ,次のような文面のメールを送ること.
---------------------------------------------------------
氏名,暗号名(上記参照)
各欄毎に,平均値,最大値と最小値の差,および標準偏差を求めた答
渡したデータが何かの推定
---------------------------------------------------------
任務の遂行期限は,12月19日 11時30分,一分の遅れも認められない...
以上,好運を祈る.
注:
標準偏差は何だったか忘れてしまった者へ
M
{x}の標準偏差 = SQRT( Σ ( x(j) - {x}の平均値 )**2 / M)
j=1
ただし,x(j)は j番目のデータの値,M はデータ総数
{x} = {x(1), x(2), ... , x(M)}
また,SQRTはルートのことで,FORTRANの組み込み関数
名である.SQRT(a) で aのルートが計算できる.
「数値解析法IIおよび演習」のトップページへ