問題タブ [largenumber]
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.
python - なぜPythonはすべての領域で非常に大きな数を処理しないのですか?
私は10^18のオーダーの数を処理しなければならないパズルをやっています。ただし、Pythonはすべての領域で非常に大きな数を処理できるわけではありません。
具体的には、a = 1000000000000000000(10 ^ 18)を割り当て、基本的な算術計算(+、-、/、*)を実行すると、それに応答します。ただし、range()で使用するとOverflowErrorが表示されます
Python2.7を使用しました。
- どうすればそのようなケースを処理できますか?、そのような数字を保持しているパズルに対処するための最良の方法は何ですか?(チュートリアル/本のリファレンスをいただければ幸いです)
- Pythonがrange()/ xrange()でそれを処理できない理由
inbuild関数を使用してPython2.7でそれを実行したいと思います。それは不可能ですか?
math - 2 ^ 81桁を超える数値を表すためにどのようなオプションがありますか?
興味深い数学の問題に出くわしました。これには、 281桁を超える数字を使って数学を行う必要があります。各桁に1つのメモリユニットがあるシステムでは、これほど大きな数を表すことは不可能であることを私は知っていますが、これを回避する方法があるかどうか疑問に思いました。
私の最初の考えは、基数10(10進数)の代わりに非常に大きな基数を使用することでした。いくつか考えた後、最適な基数は桁数の平方根になると私は信じています(したがって、2 81桁の数の場合は、基数2 40 ishを使用します)。これは改善ですが、スケーリングがうまくいかず、それでも実際には実用的ではありません。
では、どのようなオプションがありますか?私は多くの任意精度ライブラリを知っていますが、この種の算術をサポートするためのスケールはありますか?
ありがとうo7
編集:もう少し考えた後、私は「最適なベースは桁数の平方根になる」について完全に間違っているかもしれないことに気付きましたが、a)それが理由です。
編集2:基数10の1000,000=基数16のF4240=基数8の364110基数16では、基数8に数値を格納するために20ビットが必要なので、基数を増やすと合計が10進数になるように見えます必要なビット数。(これも間違っている可能性があります)
gmp - 多数を使用する場合のGMPオーバーフロー
私はC++で非常に大きな数(20桁以上)を因数分解するプログラムに取り組んでおり、オーバーフローの問題に対処するためにGMPを使用しています。私のプログラムは約10桁以下の数字でうまく機能していますが、15桁の数字を投げると爆発します。プログラムを次のように1行にまとめます。
その行を次のように置き換えると
その後、すべてが正常に動作します。
エラーは次のとおりです。
誰かがこれを修正して大量に使用できるようにする方法を知っていますか?GMPは500桁プラスマイナスのようなものを許可することになっていると思いました。
ありがとう!
c++ - 非常に大きな浮動小数点数は非決定論を引き起こす可能性がありますか?
私はwin32環境でC++最適化プログラムを実行しています。プログラムは、FFTWおよびpthread用にビルド済みのDLLを使用します。
最近、プログラムは非常に多く、場合によっては無限大に遭遇する可能性があるように変更されました。この変更後、この他の点では無駄のない堅牢なシステムは奇妙な症状を引き起こし始めました-特に、異なる実行(同じコンピューター上、同じバイナリー)で異なる数値結果を生成し、printfまたはダミーの割り当てをあちこちに追加しました行動を根本的に変えました。
考えられるすべてのバッファオーバーラン、メモリ割り当て、スレッドの問題(スレッドプールのサイズを1に減らしました)、スタックサイズを再確認しましたが、数週間の検索の後、何も見つかりませんでした。変更前は、プログラムに非決定性や安定性の問題はなく、数日間定期的に実行されていました。
問題はFFTWモジュールにあるのだろうか?それとも、そのような浮動小数点の不安定性は、多数に起因する可能性がありますか?
java - 100,000 個の整数の配列の反転をカウントすると、負の出力が得られるのはなぜですか?
上記のコードは、ファイルから 100,000 個の整数を読み取り、この整数配列の反転をカウントします。出力はおそらく 1198233847 のような非常に大きな数値であり、間違いなく正である必要があります。ただし、-1887062008 のような負の値が出力されます。同じ目的で他のアルゴリズムを試し、出力として同じ負の数を得たので、プログラムロジックはおそらく正しいでしょう。結果が大きすぎる正の数であると思われ、その結果、Java はそれを負の数に変換します。
java - javaBigDecimalarithmaticException無効な操作
なぜ java.lang.ArithmeticException: Invalid operation
大きな小数を使用しているのかわかりません。
一部の指数には、などの値があります-27
。多くのゼロを含む元の値を格納するのは難しいので、これを回避する方法はありますか?精度が必要だったのでBigDecimalを選びました。
ありがとうございました
c++ - 大きな数の合計
Project Euler の Web サイトでいくつかの問題を行っていて、問題に遭遇しました。この問題は、「次の 50 桁の数字 100 個の合計の最初の 10 桁を計算してください」と尋ねます。これを解決する数学的な方法があると思いますが、この大きな数値がどのように合計されるのか疑問に思っていましたか? 数値を文字列として保存し、各桁を long に変換しますが、数値が大きすぎて合計が機能しません。
非常に大きな数値を変数 (文字列ではない) として保持する方法はありますか? 私はそれを自分で解決したいので、コードを問題にしたくありません。
matlab - 大きな数と小さな数の掛け算
MATLAB を使用してかなり醜い積分を計算しようとしています。私が問題を抱えているのは、非常に大きな数 (>10^300) と非常に小さな数 (<10^-300) を乗算する部分です。MATLAB は、0 ~ 0.0005 の範囲である必要がありますが、これに対して 'inf' を返します。これは私が持っているものです
ここで、qb = 5、ラムダ = 12、シータ = 10、ミュー = 3 です。そして、私が見つけたいのは
u のすべての実数値に対して。問題は、u>28 の場合は常に「inf」と評価されることです。MATLAB 関数 'vpa' を使用することを聞いて試してみましたが、関数を使用したいときにうまく機能しないようです...
この時点で、ヒントをいただければ幸いです。
python - Pythonでの大きな整数の除算エラー
Pythonで大きな整数を使用して計算を行っていますが、奇妙な結果が得られています。
4行目と6行目に違いがあるのはなぜですか?それは等しくなければなりません。
LinuxPC32ビットでPythonバージョン2.7.3を使用しています
c - 大きなベース B 数を保存する最良の方法は?
右シフトや最下位ビットのチェックなどの操作を効率的に実行できるように、大きな基数 B の数値を格納する最良の方法は何ですか?
実際、私はインタビューの質問に出くわしました。
私が考えていたのは、 を考えるとbase N number system
、その中のN^N
に相当する1 followed by N zero
ということです。たとえば - N = 2 の場合、2^2 = 100 (基数 2)、N=3 の場合、3^3 = 1000 (基数 3)。その後、かどうかを判断する関数を簡単に作成できますK = N^N
。
現在、この関数には 2 つの大きな問題があります。
効率的にするために、右シフトを実行して最下位ビット操作を効率的にチェックできるように、大きな基数 N の数値を表す方法を探しています。誰もそのようなことに遭遇したことがありますか?または、この問題を効率的に解決する他の方法を知っている人はいますか?