投稿
2015.05.08  高機能電卓の情報《HP Primeで円周率を計算してみたよ》の続編。Sentaro氏が組んだ円周率多桁計算の改良版、《3DS_PI_CALC2.txt》で1000桁をNew3DSで計算させたところ、2秒。1万桁は2分27秒で出力しました。
2そうだね
プレイ済み
返信[1]
親投稿
INPUT "DIGITS=";A      // 計算する桁数 INPUT "BASE=";K       // 変数あたりの桁数 B=POW(10,K) E=FLOOR(K/LOG(2,10))   // 省略する計算項数 F=FLOOR(A/LOG(2,10))+1  // 計算項数 H=FLOOR(A/K)+1        // 結果格納配列数 DIM Z[F+1],A0[H+1]       // 配列確保
0そうだね
プレイ済み
返信[2]
親投稿
CLS FOR I=1 TO F  Z[I]=FLOOR(B/5) NEXT
0そうだね
プレイ済み
返信[3]
親投稿
N=F C=0 FOR I=1 TO H       // 外側ループは結果格納配列数でよい  LOCATE 1,1:PRINT N  T=0  FOR J=N-1 TO 1 STEP -1   D=2*J-1   W=T*J+Z[J]*B   T=FLOOR(W/D)   Z[J]=W-T*D  NEXT
0そうだね
プレイ済み
返信[4]
親投稿
W=FLOOR(T/B)  A0[I]=C+W  C=T-W*B N=N-E NEXT PRINT "PI=";      // 計算結果表示 FOR I=1 TO H  PRINT A0[I]; NEXT PRINT "END"
0そうだね
プレイ済み
返信[5]
親投稿
(FORMAT$入りの例) PRINT "PI="                   // ←変更箇所 ;を削除して改行。 FOR I=1 TO H  PRINT FORMAT$("%0"+STR$(K)+".0F",A0[I]);  // ←変更箇所 先頭をゼロ埋め。 NEXT
0そうだね
プレイ済み