2019年 04月 11日
DM42で乱数を遊ぶ (2)
前回乱数の発生のばらつきは,サンプリング数を増やすと小さくなるようなので、
以前やったように モンテカルロ法で円周率を求めてみます。
これは x,y 二つの値を乱数でだして座標としそれが円の内部にあるか外部なのかで円周率を求めるものです。
全プログラムリスト
DM42(HP42Sと同じ) 動作はUSBで電源供給なので電池の3倍速で動いています。
01 LBL "CC" **************************
02 123.4567 乱数発生器の初期値 何でもよい
03 SEED 乱数初期値セット
04 CLRG すべての変数をゼロにする
05 LBL "DD" **************************
06 1
07 STO + 3 全体の回数 カウントアップ
08 RAN 乱数作成 X
09 X^2 2乗して01にしまう
10 STO 01
11 RAN 乱数作成 Y
12 X^2 2乗する
13 RCL 01
14 + 乱数のXとYを足す
15 1 乱数を2乗して足したものが1を超えたか "D
16 X < Y ?
17 GTO "DD" 超えていたらデータ無視して次の乱数の計算に入る。
18 1
19 STO + 04 1以内ならばDをカウントアップする
20 GTO "DD" 次の乱数の計算に戻る
測定は10分間やりました。
変数名 データー
01 Xのランダム数
02 未使用
03 全体の回数 開始から1分後 54880 10分後 555760
04 1以下の回数 開始から1分後 43129 10分後 436878
1分後円周率 ( 43129 X 4 ) / 54880 = 3.14351
10分後円周率 ( 436878 X 4 ) / 555760 = 3.14436
========
乱数のサンプリング数を増やせば乱数のバラつきの比率は減る方向でしたが、乱数を使って何かやるのは、サンプリング数を増やしても精度は上がらないようですね。
乱数の使い方自体 まだ勉強する必要があるな。
HP電卓(含むDM42)でプログラムを組むのは もうゲームですね。 役立つかどうかは二の次。
****************************************************************
4月も半ば近いというのに雪景色。
自動車のタイヤ、まだ冬用のままで良かったです。
今年は、村の役を引き受けたので、なんだかんだでてんてこ舞い。
この前書いた「ジタバタ」しまくりです。
先日県議会議員の選挙で立会人を初めてやりました。
朝6時から夜7時まで投票場に缶詰になり(投票場から外に出るのは禁止されてます)
一日中 投票箱をにらんでいました。
そして次は、中学校の入学式の来賓、
まあ 端っこに座っているだけでしたがこれも初めて。
今年は、この後何があるのかな。
電子工作ランキング
にほんブログ村