Windows用高精度電卓アプリを作ったんだが需要あるか?最終更新 2025/04/09 19:041.132人目の素数さんSy9Us(1/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼10^1000桁(数値で10^10^1000)まで計算可能。10^17桁(数値で10^10^17)まで検算可能。ただし有効桁数は2000桁まで。小数点以下を含む値を扱うと17桁目から誤差が出るときがある。+-*/^()0123456789.が使える。複数の項があっても可。^も複数段使える。関数は使えない。10億桁までの高精度演算なら多倍長電卓LMを使えばよいので、それ以上の桁数の整数の計算の場合に意義が出る。高精度で計算できる。計算速度は速い。コンマ何秒。9^10^1000なんて計算も可能。こんな桁数の値を扱える電卓は一般化されていない。2024/03/03 16:53:01663コメント欄へ移動すべて|最新の50件14.132人目の素数さんwhxnc(5/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼ちなみにsin(pi)は計算できるが誤差があり0にならない。有効桁数+1桁くらいで誤差が出る。2024/03/20 21:55:3515.132人目の素数さんwhxnc(6/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼MATLAB無料版でもsin(pi)は1.2246e-16と出るのでまだマシ。2024/03/20 22:03:3716.132人目の素数さんwhxnc(7/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼sin(pi)+1が1となるのでとりあえずいいかな?2024/03/20 22:14:4317.132人目の素数さんlwQ0k(1/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>1テストしたところ有効桁数が1700桁までなら実行環境でも関数も使用可能に。これで100種類ほどの関数が使えるようになった。計算可能桁数は10^10^1000まで、自動検算可能な桁数も10^10^17までのまま。2024/03/21 09:48:52318.132人目の素数さんlwQ0k(2/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>17関数によって有効桁数に指定可能な桁数が変わるようだ。sinは有効桁数700桁程度までしか利用できなかった。piは1700桁程度。2024/03/21 09:55:08119.132人目の素数さんlwQ0k(3/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>17logも有効桁数700桁程度まで。2024/03/21 12:01:3220.132人目の素数さんlwQ0k(4/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>17訂正。計算可能桁数は10^1000まで、値では10^10^1000まで、検算可能な桁数は10^17まで、値では10^10^17まで。2024/03/21 22:45:1621.132人目の素数さん3SltIコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>1>+-*/^()0123456789.が使える。他に関数名と関数で使用する,(カンマ)が使えることになる。2024/03/22 01:06:4222.132人目の素数さんsrfJJコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼ビルド方法を変えたら有効桁数2000桁でも関数が使えるようになった。2024/05/18 12:19:53123.132人目の素数さんLFICPコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼そのアプリくれよ2024/06/10 02:14:04124.132人目の素数さんpaIxI(1/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>23まだ試作品なので公開はしていない。小数点以下を含めると17桁から誤差も出るときがある。それ以前にスキャンソフトによってはマルウェアの判定をされてしまうので、これを対処しないといけない。計算したい計算式を書いてくれたら結果を載せるよ。2024/06/11 22:58:55425.132人目の素数さんpaIxI(2/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼関数はとりあえず{}内はオプションpiroot(x{, Nth})log(x{, Base})sin(x)cos(x)tan(x)が使える。2024/06/11 23:20:52226.132人目の素数さんpaIxI(3/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼他に、剰余fmod(x,y)が使える。これは例えばfmod(2^2^2^2^2,10^100)とすれば2^2^2^2^2の末尾100桁が出る。2024/06/11 23:35:39127.132人目の素数さんqgcHgコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼整数論に出てくる関数を装備したら面白いのでは?素数判定とか素因数分解とか…は時間がかかりすぎて無理か、でも「計算中、あと10億年かかる予定」とかメッセージが出れば楽しいかも。2024/08/12 16:24:34128.132人目の素数さん9iNgd(1/5)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>27素数判定isprimeと、素因数分解factorintは小改造で実装できるが、いかんせん実行時間がかかりすぎるので実装していない。これをこの計算アプリのコンセプトである1秒以内に実行完了できるようになればいいけどな。2024/08/12 17:07:5429.132人目の素数さん9iNgd(2/5)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼計算時間予測については実装方法が見当もつかない。ちなみにfactorintがどれくらい遅いかと言うと、2つの素数からなる309桁の値の素因数分解が数時間たっても終わらないレベル。2024/08/12 17:19:43130.132人目の素数さん9iNgd(3/5)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼25桁の素数2つの49桁の合成数をfactorintで素因数分解したところ、1分57秒もかかってしまった。今のままでは使い物にならない。2024/08/12 18:17:07131.132人目の素数さん9iNgd(4/5)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼指摘があったので、素数判定isprime・素因数分解factorintを使えるようにした。感謝。ただし処理速度が遅い(>>29>>30)。2024/08/12 19:05:57232.132人目の素数さん9iNgd(5/5)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>31テスト環境では動いたが、ビルドしたら上手く動かなかったりビルド自体出来なかったりした。再調整が必要なようだ。2024/08/12 20:26:23133.132人目の素数さん6E9AOコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>32無事ビルドできて上手く動いた。相変わらず関数の使用に関して>>18のように有効桁数の限界が低いという問題があるが。素数判定も素因数分解も上手くいくようだ。大きな桁数の素数2つを掛け合わせた合成数とかだとむちゃくちゃ遅いが。あとは>>24の問題がまだ残っている。2024/09/21 23:32:4734.132人目の素数さんUn66eコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼素因数分解は、10^10+1~10^80+1程度まではサクサク一瞬で処理できるが、10^90+1程度から急に重くなった。あくまでおまけ機能だと割り切るべきか?2024/09/22 16:33:2435.132人目の素数さんDnpu6コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>22はビルドごとに出たり出なかったりしたが、対処法が分かったので全く問題が無くなった。あとは>>24の2つの問題と、sin(pi)が0にならずに有効桁数以降で誤差が出るという問題も。2024/09/24 20:40:4736.132人目の素数さん6tSyx(1/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼Full Precision Calculatorhttps://www.mathsisfun.com/calculator-precision.htmlは、数万桁以上の有効桁数と10^10^15程度までの計算可能桁数を持っている。さらに一瞬で計算処理をする。俺のアプリは計算可能桁数では勝っているが、計算速度と計算精度で劣っているようだ。げんなり。2024/10/09 18:25:42237.132人目の素数さん6tSyx(2/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>36このサイトでもsin(pi)が0にならない。できることとできないことがあるな。2024/10/09 19:36:3438.132人目の素数さん6tSyx(3/3)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>36LMでも有効桁数を増やせば計算できる2テトレーション6の先頭からの値の計算式、10^(((2^65536)*log10(2))-floor((2^65536)*log10(2)))もNaNになってしまう。2024/10/09 19:40:4639.132人目の素数さんz5CT1コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼2テトレーション6の計算ができた。2.12...e+6.03...e+19727となる。2024/12/01 00:33:05140.132人目の素数さんpcXeqコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼そこまで高精度ならlogとか三角関数とかあればもっと助かるな2024/12/23 19:07:2141.132人目の素数さんkSKDuコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>25のとおり、log・logNも三角関数もあるよ。2024/12/23 21:59:5442.132人目の素数さんs7Xmm(1/2)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼ぱいおつ2025/01/17 22:58:3443.132人目の素数さんs7Xmm(2/2)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼かいでー2025/01/17 22:58:4944.132人目の素数さんR5f8nコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>39https://sites.google.com/site/allamsnumbers/home/part-2/hyperoperational-numbersに先頭と末尾40桁の値が載っているが、2120038728808211984885164691662274630835...............8862693010305614986891826277507437428736これをもっと正確にするために100桁ずつ載せる。2120038728808211984885164691662274630835654230675372483625951752354414565561161040708771008806932213...9087575630505718260979581044520267611188489786293085833548068862693010305614986891826277507437428736ちなみに末尾100桁は>>1のプログラムでは計算できない。2025/02/01 00:08:5145.132人目の素数さんkP2nP(1/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>24とりあえずの対処をして小数点以下を含む計算でも有効桁数の最低桁付近まで誤差が減った。別のテストプログラムで計算すると小数点以下を含む計算でも誤差が全く出ないので、あとはマージして対処するだけ。もうちょっと。マルウェア判定の対処はまだ。2025/02/13 10:33:21146.132人目の素数さんkP2nP(2/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>24>>45対処できた。テストを繰り返してみる必要があるが、普通の小数点以下を含む数の計算では誤差が出なくなった。あとはsin(pi)が0にならない点と実行ファイルがvirustotalでマルウェア判定されてしまうという点が問題として残っている。2025/02/13 12:01:31247.132人目の素数さんkP2nP(3/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼virustotalが使えなかったんで、virusscan.jotti.orgでチェックしたところ問題は発見されなかった。一般公開可能な状態になったと考えて良いのだろうか?さて、どうしようか?2025/02/13 13:00:5348.132人目の素数さんkP2nP(4/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼時間が経ったらvirustotalが使えた。4/71でマルウェア判定。K7GWMcAfee ScannerSecureAgeZillyaで引っかかっている。2025/02/13 13:28:5849.132人目の素数さんkP2nP(5/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼引き続き計算するネタを募集します。使える関数は>>25>>26と>>31で、値の最大値は10^10^1000までで。2025/02/13 13:47:1550.132人目の素数さんkP2nP(6/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>46も対処できた。(実はすでにできていたが確認が遅くなった。)2種類の計算で検算する仕様だが、片方は誤差を出すまま残した。残りは実行ファイル化するとVirustotalで4件引っかかる事象だけ。2025/02/13 17:20:0651.132人目の素数さんkP2nP(7/7)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>46の対処をした際に処理速度が遅くなってしまった。計算処理をすると処理時間が1秒を超える可能性が高い。この点も懸案事項。2025/02/13 17:59:5952.132人目の素数さんFIi32コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼剰余計算はfmod(9^10^5,10^100)有効桁数100000程度まで。有効桁数を1000000にして9^10^6を計算しようとするとフリーズする。LMに負けている。2025/02/21 20:16:1353.132人目の素数さん483aH(1/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼sin(pi*(10^10^7))くらいから計算時間がかかってしまう上、sin(pi*(10^10^1000))ではオーバーフローしてしまうことが発覚。対処どうしよう?2025/03/02 22:00:4254.132人目の素数さん483aH(2/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼HyperCalchttps://mrob.com/pub/comp/hypercalc/hypercalc-javascript.htmlは、9^10^10^10程度まで有効桁数5桁ながら実数計算できる。指数表現であれば(1.79769*(10^308))ˆˆ(300)まで扱えるとのこと。幸い有効桁数で俺の電卓アプリにはまだ存在意義が残っているが、これは計算可能桁数で負けているということになる。これを超えるのは難しいだろうなぁ。げんなり。2025/03/02 22:07:4955.132人目の素数さん483aH(3/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼HyperCalchttps://mrob.com/pub/comp/hypercalc/hypercalc-javascript.htmlは、9^10^10^10程度まで有効桁数5桁ながら実数計算できる。指数表現であれば(1.79769*(10^308))^^(300)まで扱えるとのこと。幸い有効桁数で俺の電卓アプリにはまだ存在意義が残っているが、これは計算可能桁数で負けているということになる。これを超えるのは難しいだろうなぁ。げんなり。2025/03/02 22:08:5556.132人目の素数さん483aH(4/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼実はceil関数も使えるので、円周率の指定の桁数から指定の桁数分を出すこともできる。その際の式は例:円周率小数点以下部分100桁目から100桁分fmod(ceil(pi*(10^(100+100))),10^100)これで202兆桁を超えられないかと思ったが、202112290000000桁目から100桁を指定するとプログラムが落ちてしまった。残念。どこまで計算できるかは調査中。開示されている202112290000000桁目からの値は7034341087 5351110672 0525610978 1945263024 9604509887 : 202,112,289,999,9505683914937 4658179610 2004394122 9823988073 3622511852 : 202,112,290,000,000https://www.storagereview.com/news/storagereview-lab-breaks-pi-calculation-world-record-with-over-202-trillion-digits文字データでは載っていなかったのでOCRサイトで文字に変換した。2025/03/02 23:57:07257.132人目の素数さん5ODoS(1/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>56問題が発覚。1000桁までは合っていたが、10000桁で誤差が出ていた。どう対処しようか?2025/03/03 00:07:19158.132人目の素数さん5ODoS(2/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>57と思ったら有効桁数が足りてなかった。有効桁数を20000桁とかにしたら円周率10000桁でも誤差なくうまくいった。しかしこの計算式では桁数分有効桁数が必要になるので、大きな桁数では計算時間がかかるということになる。2025/03/03 00:10:12159.132人目の素数さん5ODoS(3/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>58100万桁で計算時間が3秒かかった。この計算方法ではこの程度が限界か?2025/03/03 00:16:3560.132人目の素数さん5ODoS(4/4)コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>56実はfloor関数も使えるので、最終桁以降切り捨てした方が見栄えが良いかもしれない。その際の式は例:円周率小数点以下部分100桁目から100桁分fmod(floor(pi*(10^(100+100))),10^100)2025/03/03 00:50:1061.132人目の素数さんFKof9コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼0.1^10^6などの計算の誤差がすごいことになっているのが発覚LMではちゃんと出るので致命的。どう対策しよう?2025/03/05 22:39:40162.132人目の素数さんOEvx3コメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>61まぁ2つの計算式のうち1つは正解を出すのでとりあえず放置2025/03/13 00:10:01163.132人目の素数さんwauSRコメントのURLをコピーこの ID を非表示コメントを通報コメントの削除依頼>>62合っていると思った方でも、(1/3)^(10^7)とか計算できないし、(1/3)^(10^6)でも、有効桁数1000桁で末尾7桁くらいに誤差が出る。どうしよう?2025/04/09 19:04:08
10^17桁(数値で10^10^17)まで検算可能。
ただし有効桁数は2000桁まで。
小数点以下を含む値を扱うと17桁目から誤差が出るときがある。
+-*/^()0123456789.が使える。
複数の項があっても可。^も複数段使える。
関数は使えない。
10億桁までの高精度演算なら多倍長電卓LMを使えばよいので、
それ以上の桁数の整数の計算の場合に意義が出る。
高精度で計算できる。
計算速度は速い。コンマ何秒。
9^10^1000なんて計算も可能。
こんな桁数の値を扱える電卓は一般化されていない。
有効桁数+1桁くらいで誤差が出る。
1.2246e-16
と出るのでまだマシ。
が
1
となるのでとりあえずいいかな?
テストしたところ有効桁数が1700桁までなら実行環境でも関数も使用可能に。
これで100種類ほどの関数が使えるようになった。
計算可能桁数は10^10^1000まで、自動検算可能な桁数も10^10^17までのまま。
関数によって有効桁数に指定可能な桁数が変わるようだ。
sinは有効桁数700桁程度までしか利用できなかった。
piは1700桁程度。
logも有効桁数700桁程度まで。
訂正。
計算可能桁数は10^1000まで、値では10^10^1000まで、
検算可能な桁数は10^17まで、値では10^10^17まで。
>+-*/^()0123456789.が使える。
他に関数名と関数で使用する,(カンマ)が使えることになる。
まだ試作品なので公開はしていない。
小数点以下を含めると17桁から誤差も出るときがある。
それ以前にスキャンソフトによってはマルウェアの判定をされてしまうので、これを対処しないといけない。
計算したい計算式を書いてくれたら結果を載せるよ。
{}内はオプション
pi
root(x{, Nth})
log(x{, Base})
sin(x)
cos(x)
tan(x)
が使える。
剰余
fmod(x,y)
が使える。
これは例えば
fmod(2^2^2^2^2,10^100)
とすれば2^2^2^2^2の末尾100桁が出る。
「計算中、あと10億年かかる予定」とかメッセージが出れば楽しいかも。
素数判定isprimeと、素因数分解factorintは小改造で実装できるが、
いかんせん実行時間がかかりすぎるので実装していない。
これをこの計算アプリのコンセプトである1秒以内に実行完了できるようになればいいけどな。
ちなみにfactorintがどれくらい遅いかと言うと、
2つの素数からなる309桁の値の素因数分解が数時間たっても終わらないレベル。
1分57秒もかかってしまった。
今のままでは使い物にならない。
感謝。
ただし処理速度が遅い(>>29>>30)。
テスト環境では動いたが、ビルドしたら上手く動かなかったりビルド自体出来なかったりした。
再調整が必要なようだ。
無事ビルドできて上手く動いた。
相変わらず関数の使用に関して>>18のように有効桁数の限界が低いという問題があるが。
素数判定も素因数分解も上手くいくようだ。
大きな桁数の素数2つを掛け合わせた合成数とかだとむちゃくちゃ遅いが。
あとは>>24の問題がまだ残っている。
10^90+1程度から急に重くなった。
あくまでおまけ機能だと割り切るべきか?
はビルドごとに出たり出なかったりしたが、対処法が分かったので全く問題が無くなった。
あとは>>24の2つの問題と、
sin(pi)が0にならずに有効桁数以降で誤差が出るという問題も。
https://www.mathsisfun.com/calculator-precision.html
は、数万桁以上の有効桁数と10^10^15程度までの計算可能桁数を持っている。
さらに一瞬で計算処理をする。
俺のアプリは計算可能桁数では勝っているが、計算速度と計算精度で劣っているようだ。
げんなり。
このサイトでもsin(pi)が0にならない。
できることとできないことがあるな。
LMでも有効桁数を増やせば計算できる2テトレーション6の先頭からの値の計算式、
10^(((2^65536)*log10(2))-floor((2^65536)*log10(2)))
もNaNになってしまう。
2.12...e+6.03...e+19727
となる。
https://sites.google.com/site/allamsnumbers/home/part-2/hyperoperational-numbers
に先頭と末尾40桁の値が載っているが、
2120038728808211984885164691662274630835...............8862693010305614986891826277507437428736
これをもっと正確にするために100桁ずつ載せる。
2120038728808211984885164691662274630835654230675372483625951752354414565561161040708771008806932213
...
9087575630505718260979581044520267611188489786293085833548068862693010305614986891826277507437428736
ちなみに末尾100桁は>>1のプログラムでは計算できない。
とりあえずの対処をして小数点以下を含む計算でも有効桁数の最低桁付近まで誤差が減った。
別のテストプログラムで計算すると小数点以下を含む計算でも誤差が全く出ないので、
あとはマージして対処するだけ。もうちょっと。
マルウェア判定の対処はまだ。
>>45
対処できた。テストを繰り返してみる必要があるが、
普通の小数点以下を含む数の計算では誤差が出なくなった。
あとは
sin(pi)が0にならない点
と
実行ファイルがvirustotalでマルウェア判定されてしまうという点
が問題として残っている。
virusscan.jotti.orgでチェックしたところ問題は発見されなかった。
一般公開可能な状態になったと考えて良いのだろうか?
さて、どうしようか?
4/71でマルウェア判定。
K7GW
McAfee Scanner
SecureAge
Zillya
で引っかかっている。
使える関数は
>>25
>>26
と
>>31
で、
値の最大値は10^10^1000までで。
も対処できた。(実はすでにできていたが確認が遅くなった。)
2種類の計算で検算する仕様だが、片方は誤差を出すまま残した。
残りは実行ファイル化するとVirustotalで4件引っかかる事象だけ。
計算処理をすると処理時間が1秒を超える可能性が高い。
この点も懸案事項。
fmod(9^10^5,10^100)
有効桁数100000
程度まで。
有効桁数を1000000にして9^10^6を計算しようとするとフリーズする。
LMに負けている。
くらいから計算時間がかかってしまう上、
sin(pi*(10^10^1000))
ではオーバーフローしてしまうことが発覚。
対処どうしよう?
https://mrob.com/pub/comp/hypercalc/hypercalc-javascript.html
は、9^10^10^10程度まで有効桁数5桁ながら実数計算できる。
指数表現であれば(1.79769*(10^308))ˆˆ(300)まで扱えるとのこと。
幸い有効桁数で俺の電卓アプリにはまだ存在意義が残っているが、
これは計算可能桁数で負けているということになる。
これを超えるのは難しいだろうなぁ。
げんなり。
https://mrob.com/pub/comp/hypercalc/hypercalc-javascript.html
は、9^10^10^10程度まで有効桁数5桁ながら実数計算できる。
指数表現であれば(1.79769*(10^308))^^(300)まで扱えるとのこと。
幸い有効桁数で俺の電卓アプリにはまだ存在意義が残っているが、
これは計算可能桁数で負けているということになる。
これを超えるのは難しいだろうなぁ。
げんなり。
その際の式は
例:円周率小数点以下部分100桁目から100桁分
fmod(ceil(pi*(10^(100+100))),10^100)
これで202兆桁を超えられないかと思ったが、
202112290000000桁目から100桁を指定するとプログラムが落ちてしまった。残念。
どこまで計算できるかは調査中。
開示されている202112290000000桁目からの値は
7034341087 5351110672 0525610978 1945263024 9604509887 : 202,112,289,999,950
5683914937 4658179610 2004394122 9823988073 3622511852 : 202,112,290,000,000
https://www.storagereview.com/news/storagereview-lab-breaks-pi-calculation-world-record-with-over-202-trillion-digits
文字データでは載っていなかったのでOCRサイトで文字に変換した。
問題が発覚。
1000桁までは合っていたが、10000桁で誤差が出ていた。
どう対処しようか?
と思ったら有効桁数が足りてなかった。
有効桁数を20000桁とかにしたら円周率10000桁でも誤差なくうまくいった。
しかしこの計算式では桁数分有効桁数が必要になるので、
大きな桁数では計算時間がかかるということになる。
100万桁で計算時間が3秒かかった。この計算方法ではこの程度が限界か?
実はfloor関数も使えるので、最終桁以降切り捨てした方が見栄えが良いかもしれない。
その際の式は
例:円周率小数点以下部分100桁目から100桁分
fmod(floor(pi*(10^(100+100))),10^100)
LMではちゃんと出るので致命的。
どう対策しよう?
まぁ2つの計算式のうち1つは正解を出すのでとりあえず放置
合っていると思った方でも、(1/3)^(10^7)とか計算できないし、
(1/3)^(10^6)でも、有効桁数1000桁で末尾7桁くらいに誤差が出る。
どうしよう?