• 検索結果がありません。

比較実験

N/A
N/A
Protected

Academic year: 2021

シェア "比較実験"

Copied!
1
0
0

読み込み中.... (全文を見る)

全文

(1)

比較実験

比較実験

あるプログラムの性能を評価しただけでは、そのプログラムがよいプログラムかどう かはわからない。「よい」とは「よりよい」という意味であり、相対的な評価である。

あるプログラムがよいとは別のプログラムと比較してよりよいということしか言えない 。 このような明確な結論を得るためには2つの実験対象を比較する必要がある。このよう な実験を比較実験という。

実験1 プログラムの比較

元のプログラム(付録A)と改良されたプログラム(付録B)を比較せよ。プログラム の文面だけでなく実行時間も比較すること。

傾向分析

1つのプログラムを測定するだけでは点をプロットしただけだが、2つのプログラム を測定すると点を2つに増やすことができる。2つの点は線となる。すなわち変化の傾 向を知ることができる。さらに3つ、4つと点を増やすにしたがって変化はより明確に なってくる。これは科学的方法の帰納的推論である。

あるプログラムがパラメータに応じて異なる振る舞いをする場合、パラメータを連続 して変化させると振る舞いの変化を明確にすることができる。

比較実験を行うときには、比較したい項目だけを変化させる。一度に複数の項目を変化 させると変化の原因を特定することができなくなってしまう。

実験2 Nに対する実行時間の変化

サンプルプログラム(付録C)のパラメータNを変化させ、実行時間の変化を調べよ。

また、対数グラフを作成し、その傾向について考察せよ。

本日の内容をレポートR3として提出せよ。このレポートはすぐに採点せず、次回の実 験で使用する。

付録A 元のプログラム

#include <stdio.h>

void main() { int x, a, b, c, d;

scanf("%d", &x);

for(a=0; a<=x; a=a+1)

(2)

for(b=a; b<=x; b=b+1) for(c=b; c<=x; c=c+1)

for(d=c; d<=x; d=d+1) if (a*a+b*b+c*c+d*d == x)

printf("%d^2+%d^2+%d^2+%d^2=%d\n",a, b, c, d, x);

}

付録B 改良されたプログラム

#include <stdio.h>

void main() { int x, a, b, c, d;

scanf("%d", &x);

for(a=0; a*a<=x; a=a+1)

for(b=a; a*a+b*b<=x; b=b+1)

for(c=b; a*a+b*b+c*c<=x; c=c+1)

for(d=c; a*a+b*b+c*c+d*d<=x; d=d+1) if (a*a+b*b+c*c+d*d == x)

printf("%d^2+%d^2+%d^2+%d^2=%d\n",a, b, c, d, x);

}

付録C 素数のプログラム

#include <stdio.h>

#define N 10000

void main() {

int n, k, f, c = 0;

for(n=2; n<=N; n=n+1) { f = 1;

for(k=2; k*k<=n; k=k+1) { if (n % k == 0) {

f = 0;

break;

}

(3)

} if (f) {

c = c + 1;

} }

printf("%d\n", c);

}

参照

関連したドキュメント

計算で求めた理論値と比較検討した。その結果をFig・3‑12に示す。図中の実線は

実験は,試料金属として融点の比較的低い亜鉛金属(99.99%)を,また不活性ガ

2 つ目の研究目的は、 SGRB の残光のスペクトル解析によってガス – ダスト比を調査し、 LGRB や典型 的な環境との比較検証を行うことで、

いない」と述べている。(『韓国文学の比較文学的研究』、

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

ことで商店の経営は何とか維持されていた。つ まり、飯塚地区の中心商店街に本格的な冬の時 代が訪れるのは、石炭六法が失効し、大店法が

 同一条件のエコノミークラ ス普通運賃よ り安価である ことを 証明する

 同一条件のエコノミークラ ス普通運賃よ り安価である ことを 証明する