問題タブ [underflow]
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.
math - 対数を加算して乗算を行う---単位元がゼロですか?
概念的には、偶然の一致で各イベントの確率を乗算する必要があります。非常に多くのイベントが関係している可能性があるため、アンダーフローを回避するためにコンピューターに対数を追加してもらいます。
しかし、突然、追加を開始する前に戻り値をゼロに初期化する必要があることを確信できなくなりました。ゼロが足し算の単位元であることは知っています。これが私のやり方だと覚えていますが、対数のグラフを見ると、ゼロの真数が負の無限大であることがはっきりとわかります。
したがって、戻り値をゼロに初期化することは、すべての確率に負の無限大を掛けることと同等であるはずですが、これは間違いなく正しくありません。私は何が間違っているのですか?
java - Javaは整数のアンダーフローとオーバーフローをどのように処理しますか?
Java のオーバーフローは理解できますが、アンダーフローとは何ですか? Javaはそれをどのように処理できますか?
r - Rで非常に小さな数を扱う
次のような非常に小さな数値のリストを計算する必要があります
(0.1)^1000、0.2^(1200)、
そしてそれらを正規化して、合計が1になるようにします。
a1 = 0.1^1000、a2 = 0.2^1200
そして、a1' = a1/(a1+a2), a2'=a2(a1+a2) を計算したいと思います。
a1=0 になるため、アンダーフローの問題が発生しています。どうすればこれを回避できますか? 理論的にはログを処理することができ、log(a1) = 1000*log(0.l) はアンダーフローの問題なしに a1 を表す方法になります - しかし、正規化するには log(a1+a2) を取得する必要があります - a1 を直接表すことができないため、計算できません。
私はRでプログラミングしています-私が知る限り、C#にはDecimalのような倍精度値よりも優れたデータ型はありません。
任意の提案をいただければ幸いです、ありがとう
java - Java で 2 つの Double.NEGATIVE_INFINTIY オブジェクトを追加する
Java でこのスニペットを見てください。
ガベージ値を回避するために、Double.NEGATIVE_INFINITY よりも大きく、NaN と等しくない場合にのみ、initialDistributionStripe マップに合計 (アルファ + ベータ) を追加します。
IEEE 754 および Java 仕様によると、NaN との比較はすべて false になるため、「NaN」を明示的にチェックする必要はありません。したがって、アルファ + ベータが NaN の場合((alpha + beta) > Double.NEGATIVE_INFINITY)
は false になります。
私の推論は正しいですか?
exception - たとえば、int a = Integer.MIN_VALUE-1;の場合、例外をスローします。
オーバーフローまたはアンダーフローで例外をスローする言語を知っていますか?ありがとう
numbers - 符号なし数値のオーバーフロー/アンダーフロー
したがって、符号なしの数値を加算して1を実行するとオーバーフローし、減算を使用して0を実行すると、オーバーフローします。しかし、これはすべての場合に機能しますか?
5-0を行う場合:0101-0000
= 0101 +(1111 + 1)
= 0101 +0000
= 0101 ...ここでは、1ではなくゼロの実行があります。この場合、どのように説明しますか?それを行う別の方法はありますか?
(MIPSアーキテクチャーなどを使用)
- -編集
アマダンに感謝します。しかし、私はその部分を理解しています。私の問題は、ゼロが特殊なケースのように見えることです。正規数の動作に従わないようです。上記の例では、1の実行はありません。
私は現在、ALUを使用して回路設計を行っており、オーバーフロー検出を実装しようとしています。この1つのケースが発生したとき、他のケースの動作に従わない場合があります。
減算では、2番目のオペランドがALUに入る前に事前に反転されている(2の補数)(次に最初のオペランドに追加される)と想定しています。したがって、減算の「invert_b」が1に設定されている場合は常に、bが反転され、チェックしているケースが減算であると想定します。
c - How to judge an overflow when adding signed to unsigned
I'm trying to detect the overflow when adding a signed offset to an unsigned position
#xA;How can I check whether the result is overflow or underflow?
I have thought of an ugly way but not sure of its correctness.
- underflow:
offset < 0 && position + offset >= position
- overflow:
offset > 0 && position + offset <= position
And I'm also wondering if there's a more elegant way to do it.
Update:
What's the best solution if offset is long?
#xA;java - この方程式をどのように評価しますか?
私はそれがコードからかなり自明だと思います。明らかに、私は同じことを何度も評価しているわけではなく、私の問題を説明するための単なる例です。オーバー/アンダーフローだと思いますが、対処方法がわかりません。
computer-science - アンダーフローを分割する
除数が被除数よりもはるかに小さい場合にのみ除算アンダーフローが発生するのはなぜですか。被除数のサイズに関係なく、分母がゼロに十分近いときに発生するのではないでしょうか。
java - ランダムロングからランダムダブルを生成
Javaには、-2^63から2^63までの乱数を生成するランダムジェネレータがありますが、これはjava.util.Randomではありません。
(0,1)でランダムなdoubleを生成する必要があります。これは、これまでに行ったことです。
これは正しいですか?数値的な問題(アンダーフロー?)はありますか?
より良い/より速いでしょうか?
ありがとうございました。