プチコンで遊ぼう! (はてなブログ版)

任天堂3DSのプチコンで遊ぼう! [twitter:@eida_s]

はてなダイアリーから移行しました。 はてなダイアリーのURLを開いても自動的にこちらにリダイレクトされますのでご了承ください。

140PAI

140文字で円周率を計算

C=999DIM A(C)F=100
@1
E=D%F:D=E
FOR B=C-1TO 1STEP -1G=B*2-1D=D*B+F*(A(B)+!P*20)A(B)=D%G
D=0OR(D/G)NEXT
P=0OR E+D/F?"0"*(P<10);P;
C=C-9GOTO@1

ちょうど140文字のプログラムで円周率222桁を出力することができました。
(エラーで停止するようになっています。ちゃんと停止するバージョンもありますが、140文字では収まりませんでした。)

このプログラムはプチコン起動直後に入力、RUNしてください。(またはCLEARの実行後にRUNしてください。)

【画像】↓実行した時の様子。

■参考

以下のページのソースコードを下敷きにして作りました。
こつこつアルゴリズム(Spigot Algorithm)

この計算方法はSpigotアルゴリズムというものです。
以下の論文(英語)のPDFに詳しく書かれています。
A Spigot Algorithm for the Digits of Pi

また、以下のサイトはプログラムの解説が詳しく書かれています。
円周率.jp Spigot アルゴリズム


検証は、東京大学金田研究室のSUPERπ WiNDOWS版の出力との比較によって行いました。


今回は本当に疲れた。。。