問題タブ [exponent]
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.
javascript - O(log n)よりも10の累乗を速く得ることができますか?
ほとんどの場合、べき乗はO(log n)以下であることは知っていますが、数値がどのように表されるかを理解しようとすると迷子になります。たとえば、JavaScriptにはいくつかのネイティブの数値形式があるため、次のようになります。
内部的には、それらはすべて、メモリに格納されたバイナリ値として格納および操作されることになりませんか?もしそうなら、マシンは8進数と同じくらい速く10進数と科学的記数法の表現を保存することができますか?
+("1E" + n)
したがって、あなたはより速いと期待しますMath.pow(10, n)
か?
ほとんどの場合、この質問は1E(n)がどのように機能するかについてですが、自分で答えを考えようとすると、最初に数値がどのように解析されて保存されるかについてもっと興味がありました。説明をいただければ幸いです。
ruby - Fixnumで型キャスト**Fixnum
ruby-docでは、それは<Fixnum> ** <Numeric>
分数である可能性があると述べており、例を示しています。
しかし、私のirbでは、以下Rational
の指数のように答えが返されることがあります。-1
ruby-docは正確ではないようで、rubyはRational
可能な場合はキャストを型変換しようとしますが、完全にはわかりません。底と指数の両方が両方である場合、ここでの正確な型キャスト規則は何Fixnum
ですか?特にRuby1.9.3に興味がありますが、バージョンによって結果が異なりますか?
c++ - この関数が値2^31を超えないのはなぜですか?
べき関数(C ++で記述)...
今、私はいくつかの出力テストを行います...
出力:
(64ビットのままではなく)32ビットサイズへの長いフォールバックには問題があるようです。なぜこれが機能しないのか疑問に思いますが、このlong long
タイプを使用すると、すべてが正常に機能します。
いくつかの追加情報:
私はC++とコンパイラMinGW
を使用しています64ビットOSを実行しています(Windows 7)
アップデート:
あなたたちは素晴らしいです!この種のことが起こっているとは思わなかった。
を使用して任意のPDTをチェックしsizeof
たところ、これが見つかりました...
出力:
だから、それは私のように見え、long
両方int
とも32ビットのサイズです。もう少し遊んでみると、intmax_tタイプも64ビットであることがわかります。事実上、すべてのPDTは64ビットに制限されているので、128ビット整数を表す必要がある場合、c ++にはそのための組み込みクラス(BigInteger
Javaと同様のもの)がありますか?
javascript - Javascriptの負の数から非整数の累乗
ある時点で次のようなことをしなければならないスクリプトを書いていますMath.pow(-2,1.5)
。結果は約-2.82843になるはずですが、代わりにJavascriptはを返しますNaN
。(GoogleChrome17とMozillaFirefox11の両方でこれを試しました。)指数がのように整数の場合、Math.pow(-2,3)
Javascriptは正しい答えを返します。この場合は-8です。正の数も正しく非整数の累乗になります。Math.pow(2,1.5)
約2.8284271247461903と評価されます。Javascriptで負の数の値を整数以外の累乗で計算する方法はありますか?
c# - 仮数と指数を double に変換する
非常に高性能なアプリでは、CPU が long 演算を double よりも大幅に高速に計算できることがわかりました。ただし、私たちのシステムでは、小数点以下 9 桁を超える精度は必要ないと判断されました。したがって、すべての浮動小数点演算に long を使用し、9 ポイントの精度を理解しました。
ただし、システムの特定の部分では、double を使用した方が読みやすいため、より便利です。そのため、小数点以下 9 桁を想定した long 値を double に変換する必要があります。
long を単純に 10 で割って 9 乗するか、1 を 10 で割って 9 乗すると、double で不正確な表現が得られることがわかります。
それを解決するために、 を使用しMath.Round(value,9)
て正確な値を提供します。
ただし、Math.Round()
パフォーマンスが恐ろしく遅いです。
したがって、現時点では、仮数と指数を double のバイナリ形式に直接変換することを考えています。この方法では、丸めの必要がなくなるからです。
double のビットを調べて仮数と指数を取得する方法をオンラインで学習しましたが、それを逆にして仮数と指数を取得し、ビットを使用して double を作成する方法を理解するのは混乱します。
助言がありますか?
java - 特定の入力に最も近い 2^N の値を見つける方法は?
指数関数の出力が入力値を超えるまでプログラムを実行し続け、それを指数関数の前の出力と比較する必要があります。たとえ疑似コードであっても、どうすればそのようなことをすることができますか?
math - x 乗対数を底 (1/x) に単純化する方法はありますか?
x^(N の対数ベース (1/x)) の簡略化はありますか?
java - javaでnumが2の累乗かどうかを判断しますか?
重複の可能性:
数値が2のべき乗であるかどうかを確認する方法
値 2、4、8、32、64 などを渡した場合に true を返すメソッドを作成するにはどうすればよいでしょうか?
python - 指数を浮動小数点に変換する
これは私のコードで、行の2番目のフィールドを指数関数からfloatに変換しようとしています。
しかし、プログラムは次のエラーで停止します。
誰かが理由を知っていますか?
perl - perlで行列をべき乗する
perl を使用して行列を累乗する関数を探しています。CPAN を検索しましたが、適切なものが見つからないようです。適切なパッケージ、または簡単な機能を知っている人はいますか?
たとえば、次のマトリックス ($m) の場合:
e^m ~=