問題タブ [math.sqrt]

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.

0 投票する
3 に答える
3494 参照

java - 通常の 10 進数の代わりに 16 進数を使用するのはなぜですか?

Javaで計算するためにこのコードを見ていました。math.sqrt一部のループで 16 進値を使用し、変数に通常の値を使用したのはなぜですか? ヘックスを使用する利点は何ですか?

0 投票する
4 に答える
24286 参照

java - Javaの平方根関数のソースコードはどこにありますか?

私はそれMath.sqrtが呼び出す ことを知っていますStrictMath.sqrt(double a)

StrictMathクラスの メソッドシグネチャ:

私はそれを計算するために使用される 実際の実装コードを見たかったのです。

0 投票する
3 に答える
816 参照

javascript - JavaScriptにMath.SQRT2プロパティがあるのはなぜですか?

Javascriptに2の近似平方根を返すプロパティがあるのはなぜですか。Math.sqrt(2)では不十分ですか?0.5の平方根を返すプロパティもあります。

純粋な好奇心から疑問に思っています。

0 投票する
2 に答える
1368 参照

javascript - JavaScript Math.sqrt() がより多くの数字を出力するようにする

document.write(Math.sqrt(2))HTMLページに書くと、 1.4142135623730951.

メソッドの出力を小数点以下 16 桁以上にする方法はありますか?

0 投票する
4 に答える
3388 参照

python - 数のパイソンの平方根

これが私のコードです:

私が直面している問題は、root の結果が 5+0j であることです。これは望ましくありません。平方根だけが必要です。どうすればこれを修正できますか?

0 投票する
1 に答える
566 参照

ruby - Ruby-非常に大きな整数の平方根は丸めの問題を引き起こします

私はフィボナッチ問題を解決しようとしていますが、丸めの問題に遭遇しています。

i = 8670007398507948658051921その場合fib1 = 19386725908489880000000000.0

私のコードは以下のとおりです-助けてくれてありがとう。

0 投票する
3 に答える
2931 参照

java - Javaで高速な逆平方根が奇妙で遅いのはなぜですか?

ベクトルの正規化を高速化するために、Java にFast Inverse Square Rootを実装しようとしています。ただし、Java で単精度バージョンを実装すると1F / (float)Math.sqrt()、最初とほぼ同じ速度が得られますが、すぐに半分の速度に低下します。これは興味深いことです。なぜなら、Math.sqrt は (私が推測するに) ネイティブな方法を使用していますが、これには浮動小数点除算が含まれており、非常に遅いと聞いています。数値を計算するための私のコードは次のとおりです。

私が書いた短いプログラムを使用して、1,600 万回ごとに反復し、結果を集計して繰り返すと、次のような結果が得られます。

両方でほぼ同じ速度の数値を一貫して取得し、続いて高速逆平方根が必要な時間の約 60% を節約する反復が1F / Math.sqrt()続き、続いて高速逆平方根が実行されるのに約 2 倍の時間がかかる反復が続きます。制御。なぜ FISR が同じ -> 60% 速い -> 100% 遅くなるのか、私は混乱しています。これは、プログラムを実行するたびに発生します。

編集:上記のデータは、Eclipseで実行したときのものです。プログラムを実行すると、javac/javaまったく異なるデータが得られます。

EDIT2:いくつかの応答の後、数回の反復後に速度が安定するように見えますが、安定する数は非常に不安定です。誰でも理由がわかりますか?

これが私のコードです(正確には簡潔ではありませんが、ここにすべてがあります):

0 投票する
2 に答える
184 参照

java - このプライム チェッカーが機能するのに、より効率的にしようとすると機能しないのはなぜですか

以下は、Java で (インターネットの助けを借りて) 私が最初に作成したプログラムの 1 つです。指定された整数が素数かどうかをチェックし、ユーザーにフィードバックを求めるプログラムです。ユーザー入力が整数でない場合、整数ではないことを出力します。後者は、Big Integers が入力されたときにも発生します。これはコードです:

このプログラムは彼の仕事をしますが、なぜ if ステートメントの部分が機能するのかわかりません。「i == number」が真の値を与える可能性があるのはどうしてですか(素数を入力すると「YES! PRIME」と出力されます)。ローカル変数 i は for ループでインクリメントされますが、if ステートメントは for ループの外にあります。

/edit以下の段落はナンセンスであるとJim Lewis が指摘して
いるように、今考えてみると、これが事実であると私が考えることができる唯一の理由は、== 演算子が i-'object' と number-'object' が属するかどうかをチェックするためです。同じ「タイプ」に (つまり、同じオブジェクトへの参照を持っている)。どちらもプリミティブ整数の型に属しているため、このプログラムは整数をキャッチします (他の入力は NumberFormatException をスローし、キャッチされて「整数ではありません」を出力します)。素数であるものが最初の for ループを通過すると、魔法の if ステートメントが "true" を返し、"YES! PRIME!" を出力します。

私は正しい軌道に乗っていますか?

私は魔法の if ステートメントを削除し、次のような if-else ステートメントに変更することで、このプログラムを改善まし

入力数値の平方根まで上げるだけで、計算時間が改善されます (奇数をチェックするか、AKS Primality Testを使用するだけでさらに改善できることはわかっていますが、それは重要ではありません)。

私の主な質問は、最初のプログラム (魔法の if ステートメントを使用) の効率を同じ方法で改善できなかった理由です。最初のプログラムで "(i = 2; i < Math.sqrt(number) + 1; i++)" のように for ループを強化すると、"YES! PRIME!" が出力されなくなります。素数を入力したとき。空白を与えます。私の以前の説明が正しかったとしても、おそらくそうではありませんが、これは説明されていません。

あなたは私を啓発するかもしれません。

回答: int i は for ループの範囲外であり、 for ループを number まで複数回通過した後、 i の値は、素数であることが確認できる場合、値 number に到達します。さらに、消える「YES! PRIME!」を確認すると、if ステートメントと for ループの両方で number を ( Math.sqrt(number) + 1 ) に変更し、コードを動作させることが実際に可能であることがわかりました。したがって、質問は誤った前提に基づいていました。

0 投票する
2 に答える
223 参照

c++ - グラハム スキャン アルゴリズム -> sqrt および arctan2 の巨大な値

グラハム スキャン アルゴリズムを実装する必要があります。これは私のコードです:

ソートセクションでは機能しません。関数 _arctan2() および _sqrt() は大きな値を返します。つまり、sqrt は -1464986461 を返します。なぜそれが起こるのですか?その結果、ポイントはアルファによってソートされませんが、未知の方法でソートされます。ポイントの順序を手動で設定すると、アルゴリズムが適切に機能します。

うまくいかない方法を教えてください。

0 投票する
1 に答える
953 参照

c++ - VC++ では常に sqrt() の値が 0 になる

関数 sqrt() に問題があります。私はかなりの初心者なので、甘やかしてください、答えは本当に簡単かもしれません. だからここに私のコードがあります:

私の問題は、数字を入力するときです(保存されているので、「念のため」ここに投稿する前にcoutでチェックしました)。何を入力しても x と racx が 0 であることをプログラムに伝えるだけです。私はそれが何であるか本当に無知です。「math.h」の#includeも変更しようとしましたが、それでも同じなので、コードがどこか間違っていると思います。

Windows 7 Ultimate 64 ビットで知りたい場合は、Visual c++ 2013 を使用します。

PS: お気づきのように、私の母国語はフランス語ですが、書くのが苦手でも、英語はよく理解できますのでご安心ください :P.

とにかく、注意と助けをありがとう!それは感謝されます!