問題タブ [arbitrary-precision]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
algorithm - 2 進数から 10 進数へのシフト
任意のサイズの符号なし整数 (バイナリ形式で格納されている) を 10 進数に変換するアルゴリズムが必要です。つまり、人間が読めるようにするためです ;)
現在、10 の除算によるモジュラスと剰余を継続的に計算する、おそらく (または明らかに) やや素朴な方法を使用しています。
残念ながら、速度はやや... ラメです。
たとえば、2000^4000 を (bignum ライブラリを使用して) 計算すると、約 1.5 秒かかります (炎上しないでください xD)。ただし、必要な基本変換を含む印刷には約 15 分かかり、かなり面倒です。
私は bc をテストしましたが、これは両方を 1 秒未満で実行します。
それはどのように行うのですか?(fftsを使用した乗算や、基数変換のみではありません)
c++ - 大きな16進文字列を10進文字列に変換します
大きい(組み込みデータ型には大きすぎる)16進文字列を10進表現の文字列に変換する必要があります。例えば:
私は現在、これを達成するための非常に簡単な方法を提供するc ++ BigIntクラスを使用しています(ただし、GPLのみです)。
サードパーティの算術ライブラリなしでこの変換を行う簡単な方法はありますか?または、同様の単純さ(効率は関係ありません)を備えた無料(非GPL)の代替案をお勧めできますか?
floating-point - Dで高精度の計算を実行する方法は?
いくつかの大学の仕事のために、私はいくつかの数を概算する必要があります-シリーズのオイラーのもののように。したがって、非常に小さな数を追加する必要がありますが、精度に問題があります。数が非常に少ない場合は、結果に影響しません。
各ステップの後、kはさらに小さくなりますが、第10ラウンドの後、結果はそれ以上変化せず、2.71828でスタックします。
c++ - mpfr_t(またはその他の任意精度ライブラリタイプ)を__float128に変換する
本当に2つの質問があると思います。
1)GCCでmpfr_t型を__float128型に変換する方法を誰かが知っているかどうか疑問に思いました。私は周りを見回して、mpfrバグ修正サイトで誰かが__float128からmpfr_tへのコンバーターを作成する試みについて議論しているスレッドを見つけましたが、それは昨年のいつか落ちたようです。
2)mpfr_tを__float128に変換する方法を誰も知らない場合、誰かができる別の任意精度のC / C ++ライブラリを知っていますか?
ありがとう
math - 任意精度ライブラリのどのライブラリを使用する必要がありますか?
任意精度で数値を計算するものをプログラムする必要があります...
しかし、プログラムの実行中に作業する桁が存在するように、すでに「確実」な(つまり、エラー限界を下回る)桁をファイルに出力する必要があります。
また、任意精度のライブラリのほとんどは固定精度を必要としているようですが、動的精度が必要な場合、つまり、それは継続します...
math - いくつかの剰余から数を復元する(中国の剰余定理)
私は長整数を持っていますが、10進数ではなく、剰余のセットとして格納されています。
だから、私はN
数を持っていませんが、そのような残りのセットを持っています:
Nはこれらの素数の乗算よりも小さいので、中国の剰余定理はここで機能します(http://en.wikipedia.org/wiki/Chinese_remainder_theorem)。
N
この6つの余りがある場合、10進数で復元するにはどうすればよいですか?これを行うためのプログラム(C / C + GMP / C ++ / perl / java / bc)は素晴らしいでしょう。
たとえば、最小のNがこの剰余のセットを持つことができるものは次のとおりです。
php - PHP でランダムな 64 ビット値を 10 進文字列として生成する方法
Oauth では、10 進形式の ASCII 文字列としてエンコードされたランダムな 64 ビットの符号なし数値が必要です。PHPでこれを達成するのを手伝ってもらえますか?ありがとう
c - どの言語のデータ構造にも当てはまらない大きな整数を処理する方法
私はプログラミングコンテストの予備問題を解決しようとしています.2つの問題では、非常に大きな整数(100!、2^100など)を計算して出力する必要があります。
また、この大きな整数の累乗を計算する高速な方法も必要です。
これについていくつかのアルゴリズムまたはデータ構造についてアドバイスしてもらえますか?
編集:二乗法とビットシフトによるべき乗は電力に対して機能すると思いますが、この int の階乗を計算する高速な方法も必要です。ありがとう。
EDIT2:興味のある方へ。
長さ N のすべてのビット文字列を含む最短のビット文字列の長さを見つけます (英語で申し訳ありませんが、例を挙げます)。N <= 10000
たとえば、長さ 2(00、01、10、11) のビット列をすべて含む最短のビット列長は 5(11001) です。
この問題に対する私の解決策は 2^n + n - 1 でした (したがって、2 の累乗を計算する必要があります。ビットシフトを使用すると思います)。
もう 1 つの問題は、2 つの長さが与えられた場合に、長さ N に到達する方法の数を見つけることです。 2+2+2+2、2+2+3+3、3+2+2+3、3+3+2+2...)。1 <= N < 2^63。mod 1000000007 で anwser を計算します。
私の解決策は、 2x + 3y = N なので、 x = (N - 3y) / 2 でした。y が 0 から 2*N / 3 の場合、x が整数の場合、この X と Y の一般化順列を合計 += (x+y) で計算する必要があります。/ (x!*y!)。
c++ - 浮動小数点の任意精度のC++ライブラリを使用して既存のコードを改良しますが、成功する可能性はありますか?
次のようなコードのスニペットがあるとします。
既存のコードを浮動小数点の任意精度のC++ライブラリに後付けすることは可能ですか?
単純に追加#include <cpp_arbitrary_precision_fp>
し、に変更して、C++の演算子オーバーロードにその仕事をさせtypedef double My_fp_t;
たいと思います...typedef arbitrary_double_t My_fp_t;
私の主な問題は、実際には私のコードにtypedef
:-(がないことです。そのため、私の計画は失敗する運命にあるのかもしれません。
私のコードにtypedefがあると仮定すると、他にどのような問題に直面しますか?
c++ - 余分なライブラリを必要としない多数の浮動小数点数
数百桁の長さ (pi - 3 の最初の 100 桁など) の float 値があり、それを操作する方法が必要です。多数の小数を持ち、組み込みライブラリで多くの精度を維持する float を格納して操作する方法はありますか? C ++にPythonのDecimalモジュールのようなものはありますか?