人気ブログランキング | 話題のタグを見る

ブログトップ

電子工作やってみたよ

円周率の計算式 少し解った気がする その3


円周率の計算式 少し解った気がする その3_c0335218_13030539.jpg
円周率の計算について 「e-Gadget-プログラム関数電卓」ブログで、やす様が「多桁円周率の計算(1)」というのを発表されています。
これは カシオのfx-5800上のカシオBASICで書かれていますが、実験しやすいように F-BASIC97 に書き換えて動作を調べてみました。

一言で言ってしまえば、 
オイラーによる arctan(X) の展開式をそのまま使って電卓が計算できる桁数(今回は10桁)を使って多倍長計算をさせて結果を出しています。
結果は以下の物です。


注) ミスあり ”Kを3500から計算”とあるのは、 ”Kを35000から計算”が正しいです。

円周率の計算式 少し解った気がする その3_c0335218_20204731.jpg



円周率の計算式 少し解った気がする その3_c0335218_20205809.jpg



プログラムから元の式や構造、動作、など調べるのは大変。

「RPN(逆ポーランド記法)で書かれていてもボトムアップでコツコツ調べて行けばいつかは全体が見えてくるはずだ」と思っていたのですが、今回かなり難しい(以前 石取りゲームを解読した時もそうだったような)
次にやす様のCASIO BASICでやったけれど解らず、F-BASIC97に乗せ換えて何度も数値の流れを見てやっと解ってきました。
やはり 物事はトップダウンでやるべきなのでしょうね。
全体が解ってないのにすみっこからチマチマやっても進みません。
ゲームとして楽しむためならそれでもいいのかな。
でも 最初は全体なんて解っていないのだから、どうどうめぐりですね。

プログラムは短いのに、繰り返しの回数が多くとにかく全体の計算量はべら棒に多いのです。
こういうのは、動作を調べるのは難しいですね。
かえって、プログラムは長くても一回しか通過しないやつならば、流れがすぐ解る気がします。


以下は 実際のプログラムの繰り返し数値計算しているところ調べたものの一部です。
1レジスタで計算するのを3桁にしてトータル10桁までの計算の流れを調べました。
ここは多倍長計算の繰り返しされるところこの数値の流れをA4の紙で20枚以上書いておぼろげながらわかってきました。

円周率の計算式 少し解った気がする その3_c0335218_21043692.jpg
これはまだ BASICでの計算手順が見えただけです。
本式のHP電卓のRPNでの動作解析はまだこれから、また挑戦です。

解っている人、あるいは解る人にとっては、何と言う事無いでしょうが、私のように解らない人にとって、この説明でわかるでしょうか。
たぶん半年後に私がこのブログを見ても解らなくなっている気がしてなりません。

他人に(明日の自分でもある)プログラムを解ってもらうには、日本語で普通の文章で「ここはこれこれのことをしていますよ。」 とていねいに書いてあるのが良いのかな。
あと「図」ですね。
「図」と「説明文」 まずこれさえあれば、プログラムは後でいいのでしょうね。

なに言ってるんだか。 
昔のわたしは、説明など何も書かず使い捨てソフトばかり書きなぐっていたような気がしますが。


わが村の田んぼアート 
今が一番 緑が濃いのかな。 
これからだんだん黄色くなるのでしょうね。
円周率の計算式 少し解った気がする その3_c0335218_16233875.jpg


電子工作ランキング

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

by telmic-gunma | 2019-08-31 04:38 | HP電卓