SSブログ

下手な鉄砲の利用法 [BASIC]

 下手な鉄砲として、横0.0~1.0,縦0.0~1.0の正方形に、一様に弾があたる場合を想定します。XとYを乱数(0以上1未満)で求めた座標で、原点(0,0)からの距離が1.0未満の場合に、POINTをPLOTします。
 1000万回で何回PLOTしたのかをカウントし、その値を1000万で割って4倍した値が円周率の値にどこまで近づくのか試してみました。

 3.141までしか計算できていません。

 なかなか思ったようにはいかないものですね…^^;

(by 心如)

─────
REM *** モンテカルロ法による円周率の計算 ***

RANDOMIZE
OPTION ANGLE DEGREES

SET WINDOW -0,1,0,1
DRAW GRID (0.1,0.1)
FOR I = 0 TO 90
   PLOT LINES : COS(I),SIN(I);
NEXT I

SET POINT STYLE 1
LET C = 0
LET N = 10000000
FOR I = 1 TO N
   LET X = RND
   LET Y = RND
   LET R = SQR(X^2 + Y^2)
   IF R >= 1.0 THEN 10
   LET C = C + 1
   SET POINT COLOR INT(X*50)+INT(Y*50)+2
   PLOT POINTS: X,Y
10 NEXT I
   PRINT "R < 1.0"
   PRINT C;"回 /"; N
   LET  P = 4 * C / N
   PRINT "=";P
   
   END
─────
BASIC 02.JPG

BASIC 01.JPG


タグ:円周率 乱数
nice!(0)  コメント(0)  トラックバック(0) 

nice! 0

コメント 0

コメントを書く

お名前:
URL:
コメント:
画像認証:
下の画像に表示されている文字を入力してください。

Facebook コメント

トラックバック 0

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。