« かまたえん | トップページ | ハイビスカス »

2014年11月17日 (月)

階乗の話(まただ)

★1000桁モード
前回までの話では
VBAで
   170! = 7.2574E+306
ウィンドウズの電卓で
   3248! = 1.9736342530860425312047080034031e+9997
これが限界。

こうなってくると、10の9999乗は無理としても、(仮称)10進BASICの「1000桁モード」が気になりますね。
--------------------
!Factorial
LET MAX = 452

LET fac = 1
FOR i=1 TO MAX
   LET fac = fac * i
   !PRINT fac
NEXT i
PRINT fac

END
--------------------
↓このプログラムを1000桁モードで走らせた結果をお目にかけます。
MAX=452 が限界で、453にするとオーバーフローです。

結果↓
「Factorial452.TXT」をダウンロード

プログラムで10桁ごとにスペースを入れる、というようなことも書けますが、今回は本質的な階乗の部分だけを書いて、スペースを入れる作業は原始的に「手動」です。

3533506829 こう始まって
000000   で終わっています。

数字が1006個並んでいるということですね。
3.533506829×(10^1005)
ということです。

こんなものを見たことのある人は少ないと思いますので、もしチャンスがあったら452!を全部見たぞ!と自慢してください。

ちなみに、ウィンドウズの関数電卓で確認すると
452! = 3.5335068298247639287273846425971e+1005
ここまでセーフ。

453! = 1.6006785939106180597135052430965e+1008
こうなりまして、453! は1000桁モードではオーバーフローになりました。

もういっちょ、ちなみに
二進およそ16桁 というモードだと
170! = 7.25741561530799 E306
これが限界になります。
{これVBAの限界と同じですね。理由は簡単ですが、いまここで解説することでもないから、やめときます。CPUの能力です。}

« かまたえん | トップページ | ハイビスカス »

理科おじさん」カテゴリの記事

コメント

この記事へのコメントは終了しました。

2024年5月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  
サイト内検索
ココログ最強検索 by 暴想
無料ブログはココログ