問題タブ [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.
programming-languages - ほとんどのプログラミング言語が 4 の平方根に対して 1 つの答えしか返さないのはなぜですか?
ほとんどのプログラミング言語は2
、 の平方根の答えとして与え4
ます。ただし、答えは2
との 2 つ-2
です。歴史的またはその他の理由で、通常 1 つの答えしか与えられない特定の理由はありますか?
actionscript-3 - 半径内のオブジェクトを見つける
半径内のオブジェクトを見つけるための軽量な方法を探しています。
これまでのところ、私にとって明らかな答えは、各オブジェクトを調べて、その x および y 位置を半径の中心と比較することです。
例:
Turret
- 半径内のターゲットを探しています。
TargetArray
- 可能なターゲットの配列。
WithinRangeArray
- 該当するターゲットをプッシュする配列
平方根を回避すると、処理能力がいくらか節約されます。しかし、より良い(より軽量な)他のアルゴリズム/理論/方法があるかもしれないと感じています。
TargetArray の理想的な長さ: 一度に 500 未満のターゲット。
php - PHP の平方根
PHPで「16」の出力がsqrt
整数ではないのはなぜですか?
例
問題は Python と同様に PHP が隠している内部表示にあるように感じます。平方根を取った後、与えられた数値が整数であることをどのように知ることができますか?
では、正規表現を使用せずに PHPで4
とを区別するにはどうすればよいでしょうか?4.12323
java - Java:パフォーマンスSQRTの計算
私はこのコードを持っています:
このsqrtメソッドは「heroon」と呼ばれます。
プログラムを実行して80000の計算を要求し、出力を無効にすると、Math.sqrt()はメソッドよりもはるかに高速になります。80000 calcsを要求し、出力を有効にすると、私の方法ははるかに高速になります。
誰かがこれを説明できますか?
ありがとう
英語が下手でごめんなさい。
c++ - Visual Studio 2008コンパイラは、C ++のsqrtで2倍になるように自動キャストされませんか?
次の場合、コンパイラは自動的にdoubleにキャストされるべきではありませんか?少なくともウォルター・サヴィッチによれば。
c++ - sqrtの大幅に高速なバージョンをロールすることは可能ですか?
私がプロファイリングしているアプリでは、一部のシナリオでは、この関数が合計実行時間の10%以上を占める可能性があることがわかりました。
卑劣な浮動小数点トリックを使用したより高速なsqrt実装の長年にわたる議論を見てきましたが、そのようなものが最新のCPUで時代遅れであるかどうかはわかりません。
参考までに、MSVC ++ 2008コンパイラが使用されています...ただし、sqrtはそれほどオーバーヘッドを追加しないと思います。
modf関数に関する同様の説明については、こちらも参照してください。
編集:参考までに、これは広く使用されている方法の1つですが、実際にははるかに高速ですか?とにかく最近SQRTは何サイクルですか?
algorithm - HaskellでIntが完全な正方形かどうかを判断する方法は何ですか?
シンプルな機能が欲しい
これは、Int N が完全な正方形かどうかを判断します (x*x = N となる整数 x はありますか)。
もちろん、私はちょうどのようなものを書くことができます
しかし、それはひどいようです!そのような述語を実装する一般的な簡単な方法があるでしょうか?
c - sqrt() 関数が可変引数で機能しない
明らかな何かが欠けているかどうかはわかりませんが、Cで変数の平方根を計算できないようです。sqrt() 関数は定数に対してのみ機能するようです。これは私のコードです:
このプログラムを実行すると、次のエラーが表示されます。
ただし、sqrt() の引数を ( ) などの 2.0 などの定数に置き換えると、b = sqrt(2.0)
正常に動作します。sqrt() は変数などで動作しないはずですか?
助けてくれてありがとう
objective-c - 平方根の推定
1/30 秒ごとに約 2000 回、数値の平方根を計算する必要がある iPhone アプリを作成しています。sqrt() はコンピューターでは正常に動作しますが、iPhone または iPad ではフレーム レートが約 10 FPS に低下し、残りのコードは既に最適化されています。平方根を見積もることでこれを劇的に高速化できると聞いたことがありますが、これを行うコードが見つかりません。小数点以下 1 桁または 2 桁の精度が必要です。これを行う方法、または物事をスピードアップする他の方法についての提案をいただければ幸いです。
ありがとう!
c - 逆三角関数(およびsqrt)関数(C)の浮動小数点演算の丸め誤差をどのように説明できますか?
私はかなり複雑な関数を持っており、緯度と経度がラジアンと角度である形式(大きさ、緯度、経度)の3空間で2つのベクトルを表すいくつかのdouble値を取ります。この関数の目的は、最初のベクトルを2番目のベクトルの周りで指定された角度だけ回転させ、結果のベクトルを返すことです。コードが論理的に正しく、機能することをすでに確認しました。
この関数の期待される目的はグラフィックスであるため、倍精度は必要ありません。ただし、ターゲットプラットフォームでは、floatを受け取るtrig(およびsqrt)関数(具体的にはsinf、cosf、atan2f、asinf、acosf、sqrtf)は、floatよりもdoubleで高速に動作します(おそらく、このような値を計算するための命令で実際にdouble; floatが渡された場合、値をdoubleにキャストする必要があります。これには、より多くのメモリがある領域(つまりオーバーヘッド)に値をコピーする必要があります。その結果、関数に含まれるすべての変数は倍精度になります。
問題は次のとおりです。1秒間に何度も呼び出すことができるように関数を最適化しようとしています。したがって、sin、cos、sqrtなどの呼び出しを、これらの関数の浮動小数点バージョンの呼び出しに置き換えました。これにより、全体で3〜4倍の速度が向上します。これはほとんどすべての入力で機能します。ただし、入力ベクトルが標準の単位ベクトル(i、j、またはk)とほぼ平行である場合、さまざまな関数の丸めエラーが蓄積され、後でsqrtfまたは逆三角関数(asinf、acosf、 atan2f)これらの関数のドメインのほんの少し外にある引数を渡すため。
したがって、このジレンマが残ります。倍精度関数を呼び出して問題を回避することしかできない(そして、1秒あたり約1,300,000のベクトル演算の制限になってしまう)か、別のことを考え出すことができます。最終的には、逆三角関数への入力をサニタイズしてエッジケースを処理する方法が必要です(sqrtの場合は簡単です。absを使用するだけです)。単一の条件ステートメントでさえ非常に多くのオーバーヘッドを追加するため、パフォーマンスの向上が失われるため、分岐はオプションではありません。
それで、何かアイデアはありますか?
編集:誰かが、doubleと浮動小数点演算の使用について混乱を表明しました。すべての値を実際にdoubleサイズのコンテナー(つまり、double型変数)に格納する場合は、floatサイズのコンテナーに格納する場合よりも、関数の方がはるかに高速です。ただし、明らかな理由により、浮動小数点精度の三角関数の演算は倍精度の三角関数の演算よりも高速です。