人気ブログランキング |

ブログトップ

電子工作やってみたよ

DM42で円周率計算306桁_54秒

インターネット上で電卓を使っての円周率の計算を発表している方がいましたので、
それらを参考にさせていただいてDM42(HP42S)でやってみました。

以下の方たちを参考にしました。ありがとうございます。(連絡してませんけれど)

1、「 高機能電卓の情報 」 akatukiさん
2、「 e-Gadge-プログラム関数電卓 」
3、「 Many Digits of Pi by Katie Wasserman - MoHPC 」
www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=899

3の中のHP15CのものをベースにしてDM42(HP42S)に移しました。
変更部分はわずかですが、わずか故にムシがなかなか見つかりませんでした。
下に同じ動作するソフト(15Cと42S)を併記してあります。

(結果)
円周率306桁の演算時間は以下の通りです。
やはり DM42は凄いです。
1分くらいなら気楽に挑戦できますけれど、10時間超えると電池が持つか心配になりますね。
ましてや40時間なんて、やった人いないのでしょうね。
そうそう デバッグして修正して確認するだけでも結果が出るのは明後日だよなんてやってられないでしょう。


DM42(USB駆動 電池の3倍速)   54秒       実測
HP42S               11時間15分位 計算にて予測

HP15C_LE             16分位      実測
HP15C               40時間位     計算にて予測


これだけスピードが速いと今まで出来なかったことも、いろいろとオモチャできますね。
どんなことがあるだろう。


今現在の状況 (2019年6月8日)

  Piを出す式は分かりました。
  プログラムは動きました。
  答えは出て、合っています。
  しかし どうして この式がこのプログラムになるのか理解できません。

ここからがHP電卓の楽しみかもしれませんね。
パズル、ちえの輪 HP電卓(RPN電卓とも言う)という名のゲームマシン 本領発揮ですね。
理解出来たら このリストにコメントをしっかり書きますね。

c0335218_10080924.jpg


全プログラムリスト 

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 + ・・・)))・・・))

    左側リスト       右側リスト
HP15C ( HP15C_LE ) DM42 ( HP42S )
オリジナルのもの HP15C用をHP42Sように修正したもの

01    LBL AA        42.21.11       01    LBL AA
02 5 5 02 SIZE 100 変数領域の確保 R0~R99
03 3 3
04 DIM(i) 42.23.24
05 FIX 0 42. 7. 0 03 FIX 00 小数点以下表示しない
06 CLR REG 42.34 04 CLRG 変数領域消去
07 1 1 05 1017
08 0 0
09 1 1
10 7 7
11 STO 1 44.1 06 STO 01
12    LBL 1         42.21.1         07    LBL 1       mainループの先頭
13 2 2 08 2
14 STO II 44.25 09 STO II
15 0 0 10 0 CARRYの初期値
16    LBL 2         42.21.2        11    LBL 02      レジスター計算ループの先頭
17 EEX 26 12 1E6
18 6 6
19 × 20 13 ×
20 RCL(i) 45.24 14 RCL IND II
21 RCL 1 45.1 15 RCL 01
22 × 20 16 ×
23 + 40 17 +
24 ENTER 36 18 ENTER
25 ENTER 36 19 ENTER
26 ENTER 36 20 ENTER
27 RCL 1 45.1 21 RCL 01
28 2 2 22 2
29 × 20 23 ×
30 1 1 24 1
31 + 40 25 +
32 ÷ 10 26 ÷
33 LSTX 43.36 27 LSTX
34 X<>Y 34 28 X<>Y
35 INT 43.44 29 INT
36 STO(i) 44.24 30 STO(i)
37 × 20 31 ×
38 - 30 32 -
39 1 1 33 1
40 STO +II 44.40.25 34 STO +II
41 R↓ 33 35 R↓
42 RCL II 45.25 36 RCL II
43 5 5 37 54
44 4 4
45 - 30 38 -
46 X=0? 43.20 39 X=0?
47 GTO 3 22.3 40 GTO 3
48 R↓ 33 41 R↓
49 GTO 2 22.2 42 GTO 2
50    LBL 3      42.21.3           43    LBL 3
51 2 2 44 2
52 STO 2 44.2 45 STO 2
53 RCL 1 45.1 46 RCL 1
54 1 1 47 1
55 - 30 48 -
56 STO 1 44.1 49 STO 1
57 X>0 ? 43.30.1 50 X>0 ?
58 GTO 1 22.1 51 GTO 1
-------------------------------------
59 5 5 52 53 桁上がり(キャリー)レジスターを
60 3 3 後ろのレジスタ(53番目)より順に処理する
61 STO II 44.25 53 STO II
62 0 0 54 0 最初はキャリー無しから始まる
63    LBL 4      42.21.4          55    LBL 4      ---桁上がり処理ループ先頭------------
64 STO +(i) 44.40.24 56 STO +(i) 上位のレジスタへキャリーを加算 0 or 1
57 RCL (i) 45.24 57 RCL (i) O or 1 の加算されたレジスタを読み込む
66 EEX 26 58 E6 1000000で割り算
67 6 6
68 ÷ 10 59 ÷
69 INT 43.44 60 INT 7桁目(キャリー)を取り出す
70 STO 1 44.1 61 STO 1 キャリーをR1にセーブしておく
71 EEX 26 62 E6 キャリーを1000000倍する
72 6 6
73 × 20 63 ×
74 STO -(i) 44.30.24 64 STO -(i) キャリーを含んだ元の数値からキャリーのみ引く
75 RCL 1 45.1 65 RCL 1 キャリーをR1からXレジスターに戻す
76 DSE II 42.5.25 66 DSE II インデックスポインター1を引いて
0でないならLBL4へ戻る
77 GTO 4 22.445.2 67 GTO 4
78 RCL 2 45.2 68 RCL 2 円周率の頭の3を読み込んで終わりとする
79 RTN 43.32 69 RTN

(注) HP15Cでは変数 I は 1 と判りやすくするため II と書いています。

答えは R3 から R53 までひとつのメモリーに6桁分づつ入っています。
この計算でキャリーのあるところは R32 R23 R19 R17 R11 R3 です。
円周率306桁の答えは以下の通りです。(書くまでもないですね。)

R02    3
R03 141592
R04 653589
R05 793238
R06 462643
R07 383279
R08 502884
R09 197169
R10 399375
R11 105820
R12 974944
R13 592307
R14 816406
|
|
|
R52 141273
R53 724586

========



今年も咲きました。 アルストロメリア  一年たつの早いですね。
c0335218_19443212.jpg


c0335218_19525419.jpg


なでしこ   手入れも何もしていません。去年のままですけれど綺麗に咲きます。

c0335218_19454947.jpg



c0335218_19535951.jpg



新しい場所に植えたイチゴ、大きいのも少しありましたが、ほとんどは小さいままでした。
数は圧倒的に少なくなりました。
移植したせいか、場所が悪かったのか、なにもしない方が良かったみたい。
野菜、くだもの、花 などの生き物を育てるのも難しいですね。
何が悪いと教えてくれるわけでなく、ただ枯れていくだけ。
そして結果が出るのにとても時間がかかり、失敗に気がついて修正しても結果がでるのは1年先とか。
c0335218_19514809.jpg




c0335218_19545676.jpg



電子工作ランキング

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

Commented by すがわら at 2019-06-09 16:52 x
こんにちは。いろいろ挑戦されてますね。この式は良くは見ていませんけど、1/5とか1/239が出てこないので、よく有るマーチンの式などでは無く、ガウス・ルジャンドル法に見えます。漸化式の計算を繰り返すことで精度が高まるやり方です。式中平方根計算が出てきますが、ニュートン法を利用すればループで処理できるので、ステップ数の少ない電卓向けの処理なのかもしれません。
Commented by Kusaka at 2019-06-09 17:35 x
円周率の記憶で、いまのギネス記録は原口證さんという方の8万3,431桁だそうです。
ところで高井さんのMTBの変速機が調子わるいんです。 まだ買って数ヶ月なので返金してもらえますか。
Commented by telmic-gunma at 2019-06-09 21:00
> すがわらさん
ありがとうございます。
ガウス・ルジャンドル法 調べてみました、 少し光が見えたようです。
私の頭ではまだまだ難しいですが、時間をかけて頑張ってみます。
ほんとに 感謝感謝です。
Commented by telmic-gunma at 2019-06-09 21:15
> Kusakaさん
ありがとうございます。
あのねえ 自転車を自分で組み立てられる人が変速機の調子くらいで文句言わないでちょうだい。
とにかく 今年は「三国峠」への挑戦
Commented by あけび at 2019-06-10 15:45 x
待ってました~~お花ブログ
アルストロメリア、つぼみがたくさんですね。 とうぶん楽しめますね。
我が家のなでしこは すでに花が終わってしまいました。 いい香りですよね。
一枚目のイチゴの写真にアリが写っています。イチゴを食べられないように・・・
でも アリが食べるということは無農薬の証拠。 安全ですね・・・
Commented by telmic-gunma at 2019-06-10 21:26
> あけびさん
ありがとうございます。
こちら群馬の川場村から比べるとそちらは、だいぶ暖かいようですね。
大きなイチゴ 何個も食べられていました。
犯人は鳥かと思っていましたがもしかするとアリかもしれませんね。
Commented by すがわら at 2019-06-10 21:34 x
よく見たら、リストに数式が出てましたね。それによると連分数による計算方法のようです。
知ったかぶりを書き込んで恥ずかしいです....
Commented by telmic-gunma at 2019-06-11 08:37
> すがわらさん
ありがとうございます。
多重かっこのつながりを簡単な形に出来ないかやってますけど、
連分数、その形にできればあらたな展開ができるかもですね。
プログラム側からもしつこくつついて行けばその計算を成り立たせている式が出るはずですね。
まあいろいろな方向からやってみます。
名前
URL
画像認証
削除用パスワード

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

by telmic-gunma | 2019-06-08 20:06 | HP電卓 | Comments(8)