波と円周率
11.波(次の100から240までをコピーし、テキストファイルにして使って下さい。)
100 rem nami
110 graphics 0
120 graphics window 400,400
130 for k = 1 to 5
140 x = mouse(1) : y = mouse(2) : rem mouse ichi kenshutu
150 graphics moveto x,y
160 for i = 50 to 400 step 50
170 graphics color 0,50,100
180 graphics circle i
190 for j = 1 to 170000 : next j : rem jikan kasegi
200 cls
210 next i
220 for j = 1 to 900000 : next j : rem jikan kasegi
230 next k
240 end
解説)
マウスのおいてあるポイントから同心円の波が出るプログラムです。
140行目のmouse(1)がマウスの位置を与える関数です。
190,220行でタイミングをとっています。パソコンの性能で変わりますので、表示
速度を変えたい時は、ここの値を変えて下さい。
12.乱数による円周率の計算(次の100から230までをコピーし、テキストファイル
にして使って下さい)
100 rem pai no keisan
110 n = 0
120 k = 2000
130 randomize (timer)
140 print " n K PAI "
150 for i = 1 to k
160 x = rnd(1)
170 y = rnd(1)
180 if x*x+y*y < 1 then n = n+1
190 if (i mod 100) > 0 then 220
200 pai = 4*n/i
210 print n,i,pai
220 next i
230 end
解説)
乱数を使ってパイの値を求めるプログラムです。一辺が1の四角形の中の1/4円に
ランダムな点がどれくらいの率で落ちるかでパイを計算しています。
160,170行のようにrndに1を入れることにより、1以下の乱数が求められます。
190行のmodは、余りを求める関数です。これを使って、プリントする回数を100
回に1回にしています。
200行目では、求めた値が1/4円のパイなので4倍しています。