問題タブ [integer-arithmetic]
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.
c++ - 奇妙な整数オーバーフロー ロジック
次のコードではオーバーフローが発生しますが、残念ながら理由がわかりません。
その後test
はかなり大きな値です。
ここで何が起こっているのか、誰か説明してもらえますか?
integer-arithmetic - 2 つの整数を並列に追加する
2 つの配列 a、b で指定された n 桁の 2 つの符号なし整数があり、それぞれが 2 桁を加算し、存在する場合はキャリーを計算できる p 個のプロセッサがあるとします。時間 O(p+n/p) で a+b を計算することは可能ですか? 入力をそれぞれ (n/p) の p 間隔に分割しようとしましたが、キャリーの処理方法がわかりません。
c# - C#整数演算では、a/b/c は常に a/(b*c) に等しいですか?
a、b、c を大きくない正の整数とします。a/b/c は常に a/(b * c) と C# の整数演算で等しくなりますか? 私の場合、C# では次のようになります。
だから私の質問は:x1 == x2
すべてのa、b、cに対してですか?
java - この算術演算が Java で機能しないのはなぜですか?
次の実行時に奇妙なエラーが発生することに興味がありました。
出力は次のとおりです。
最後の 3 つの操作で が返されるのはなぜ0
ですか? の周りのかっこ1/3
は、計算の実行方法によって何かが変わるように見えますが、それを にケース化しようとしてもint
、出力は変わりませんでした。
私はとを使用していBlueJ IDE
ますJava version 1.7.0_17
編集
私は答えを見つけました。作業順序によるものです。parens
除算が最初に発生する原因であり、1 int
/3 または 2/3 は常に に等しくなり0
ます。数が よりも大きいため、すべてでwidth * 2
割る前に を発生させても問題ありません。3
1
時にはそれは単なる基本的な数学です... :)
integer-arithmetic - 2つの褒め言葉によって引き起こされる不適切な行動から保護する
次の質問を読みました: Value of i for (i == -i && i != 0) to return true in Javaで、少し目がくらんだままでした。
間違った単位系を使用したために宇宙船が失われたと読んだことがあるので、質問と awnser で言及されている動作を見るのは私にとってまったく予想外です。
実行時のペナルティなしで、これによって生成されるエラー/予期しない動作からどのように保護しますか? (比較で意味のあるコードを考えるのは難しいと思いますが、負の値を返して失敗するの=
はかなり簡単だと思います)。abs
キャッチする例外はありますか? これについて警告するリンター?
予期しない動作:
abs()
入力が最小の負の数である場合、javaは最小の負の数を返します。-x=x には、2 の補数の最小の負の数である 0 以外の解があります。
algorithm - 複雑さの低い方法での累乗
q^k を計算したいのですが、st q は n ビット幅で、制限があります。
- 最終結果は n*k ビット幅になります。
- 計算のすべてのステップで、x,y st x を乗算した結果は |x| です。ビット幅で、y は |y| です。ビット幅は |x|*|y| です。ビット幅。
私はそれをペアでやろうとしました。最初のステップの結果は 2n ビット、2 番目のステップは (2^2)n ビットなど、最後のステップは n*2^(logk) (=kn ) ビット。log(k) ステップがあり、慎重に計算すると、O(log(n)(log(k))^2) になります。上記の制限の中で、それを行うためのより高速な方法 (またはこのアルゴリズムなどのより良い分析) について聞いていただければ幸いです。前もって感謝します。
haskell - 無限精度整数: 2 による除算
C では、int を 2 で除算したい場合
、優れたコンパイラは最後のビットを確認するだけなので、x%2
できるだけ速く実行する必要があります。(x%10)% 2
しかし、無限精度演算を行う言語ではどうでしょうか?
特に、Haskell ではどちらが速いか (または同じ速度になるか):even x
またはeven (quot x 10)
?