人気ブログランキング |

ブログトップ

電子工作やってみたよ

DM42で円周率計算_970桁_時間は電池で20分

1レジスタ10桁表示がうまく行ったのでR99まで使って円周率を計算しました。
小数点以下970桁です。
時間は詳しく計っていなかったのですが電池動作で20分以下でした。
数値の確認は 先頭部、中央部、終端部を円周率表と照らし合わせて一致していました。
10桁単位の表示は円周率表と同じなので探すのが楽でした。
HP42Sは表示12桁内部演算15桁なので10桁表示がうまく動作したのかもしれません。
HP15Cの10桁演算10桁表示でうまく行くか判りません。
相変わらず、このプログラムの動作はまだ理解できていません。

c0335218_14441607.jpg

全プログラムリスト 


全プログラムリスト

円周率 1レジスタに10桁表示(とりあえずの試し実験)

Many Digits of Pi by Katie Wasserman - MoHPC
www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=899

オリジナルの計算式

π = 2 + 1/3( 2 + 2/5( 2 + 3/7( 2 + ・・・ ( 2 + k/(2k+1)( 2 + ・・・)))・・・))


DM42 ( HP42S )

01 LBL AA
02 SIZE 100 変数領域の確保 R0~R99(もっと大きく出来るがここまで)
03 FIX 00 小数点以下表示しない
04 CLRG 変数領域消去
05 3700 ***** 1017 =>3700 970桁計算に概略必要と思われる値
06 STO 01
*

07 LBL 1 mainループの先頭
08 2
09 STO II
10 0 CARRYの初期値

*
11 LBL 02 レジスター計算ループの先頭
12 1E10 ***** 1レジスタ10桁表示
13 ×     10,000,000,000倍する
14 RCL IND II
15 RCL 01
16 ×
17 +
18 ENTER
19 ENTER
20 ENTER
21 RCL 01
22 2
23 ×
24 1
25 +
26 ÷
27 LSTX
28 X<>Y
29 INT
30 STO(i)
31 ×
32 -
33 1
34 STO +II
35 R↓
36 RCL II
37 100 ***** 54=> 100   レジスタR99まで計算する
38 -
39 X=0?
40 GTO 3
41 R↓
42 GTO 2

*
43 LBL 3
44 2
45 STO 2
46 RCL 1
47 1
48 -
49 STO 1
50 X>0 ?
51 GTO 1
-------------------------------------
52 99 ***** 53 => 99 修正  
53 STO II
54 0 最初はキャリー無しから始まる

*
55 LBL 4 ---桁上がり処理ループ先頭------------
56 STO +(i) 上位のレジスタへキャリーを加算 0 or 1
57 RCL (i) O or 1 の加算されたレジスタを読み込む
58 1E10      E6 => E10 10,000,000,000で割り算
59 ÷
60 INT 7桁目(キャリー)を取り出す
61 STO 1 キャリーをR1にセーブしておく
62 1E10 ***** キャリーを10,000,000,000倍する
63 ×
64 STO -(i) キャリーを含んだ元の数値からキャリーのみ引く
65 RCL 1 キャリーをR1からXレジスターに戻す
66 DSE II インデックスポインター1を引いて 0でないならLBL4へ戻る
67 GTO 4
68 RCL 2 円周率の頭の3を読み込んで終わりとする
69 RTN


答えの 1レジスタに10桁表示。


R02 3,
R03 1,415,926,535
R04 8,979,323,846
R05 2,643,383,279  


R50 1,885,752,724
R51 8,912,279,381
R52 8,301,194,912
|
|
R97 9,375,195,778
R98 1,857,780,532
R99 1,712,268,066

最後小数点以下 970桁目


========




電子工作ランキング

にほんブログ村 その他趣味ブログ 電子工作へ
にほんブログ村

Commented by すがわら at 2019-06-19 09:03 x
そろそろ電卓の限界ですね。次のプロジェクトは何なるのでしょうね。
Commented by telmic-gunma at 2019-06-20 05:41
> すがわらさん
ありがとうございます
電卓の限界ではなくて私の頭の限界かも。
まだこのプログラムの動作は理解できないのですから。
おかげ様で10桁表示はうまく行ったので10000桁に挑戦したのですが、ちょっとしたミスでダメでした。
今日再挑戦です。結果出るまでに時間のかかることはたいへんですね。
名前
URL
画像認証
削除用パスワード

※このブログはコメント承認制を適用しています。ブログの持ち主が承認するまでコメントは表示されません。

by telmic-gunma | 2019-06-19 03:22 | HP電卓 | Comments(2)