新しく発言する  EXIT  インデックスへ
エラトステネスの篩とその実行結果のファイ...

  エラトステネスの篩とその実行結果のファイル出力と実行時間の短縮 五十嵐真人 2008/02/01 15:37:51 

エラトステネスの篩とその実行結果のファイル出力と実行時間の短縮  返事を書く  ノートメニュー
五十嵐真人 <cwkcuxgbof> 2008/02/01 15:37:51
エラトステネスの篩と
その実行結果のファイル出力と実行時間の短縮

2008/01/06

報告書作成 五十嵐真人
(いがらしまなと、日本大学工学部電気電子工学科2年)
宜しくお願いします。Email:u184014@cc.ce.nihon-u.ac.jp

1、はじめに

 エラトステネスの篩のプログラムを実行し、その実行結果をファイルに出力した場合と、画面に出力した場合では、前者の場合の方が実行時間が短いことが解った。そこで今回は十進BASICのプログラムを用いて、それらの実行結果の出力方法の違いによりどれ程、実行時間に差が生じ、実行時間が短縮されるかについて検証したいと思う。

2、プログラム

これらは、エラトステネスの篩を使い、1から100万の素数を求めるものである。

(1)実行結果をファイルに出力するプログラム(十進BASIC、十進モード、27行)

@“C:\prime1000000.TXT”(HDDに出力)

REM *** エラトステネスのふるい
let t0=time
LET F$ = "C:\prime1000000.TXT"
OPEN #1 : NAME F$
ERASE #1
LET N=1000000
DIM A(N)
FOR I=1 TO N
LET A(I)=0
NEXT I
LET A(1)=1
LET D=2
100 FOR I=D*D TO N STEP D
LET A(I)=1
NEXT I
200 LET D=D+1
IF A(D)=1 THEN 200
IF D>SQR(N) THEN 300
GOTO 100
300 FOR I=1 TO N
IF A(I)=1 THEN 400
LET K=K+1
PRINT #1:I;
400 NEXT I
CLOSE #1
print time-t0;"sec"
END

A“F:\prime1000000.TXT”(フラッシュメモリに出力)

(1)のプログラムの3行目を“LET F$ = "C:\prime1000000.TXT"”から“LET F$ = "F:\prime1000000.TXT"”に書き換える。

(2)実行結果を画面に出力するプログラム(十進BASIC、十進モード、27行)

(1)のプログラムの23行目“PRINT #1:I;”を“PRINT I;”に書き換えます。

3、実行結果

上記のプログラムを実行したときの実行時間はそれぞれ

(1)実行結果をファイルに出力するプログラム
@“C:\prime1000000.TXT”(HDDに出力):     10.13 sec
A“F:\prime1000000.TXT”(フラッシュメモリに出力):7.97 sec
(2)実行結果を画面に出力するプログラム:      687.94 sec

4、考察
 
 実行結果をHDDのファイルに出力する場合と、画面に出力する場合では、実行時間は前者より後者の方が約69倍長いことが判った。
 また、フラッシュメモリを使えばもっと実行時間を短くすることが出来ることが判った。
 今回の検証結果から、実行結果のファイル出力は実行時間の短縮に大いに役立つと言えよう。

  十進BASICにはテキストファイルの内容を視認... 荒田浩二 2008/02/02 17:09:05 
   └規格上,BASICでは変数や配列の初期値が0で... 白石 和夫 2008/02/02 17:25:58  (修正1回)

 インデックスへ  EXIT
新規発言を反映させるにはブラウザの更新ボタンを押してください。