問題タブ [pow]
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.
php - 大円アルゴリズムの実装
以下は、PHP に変換したい数式 (Great Circle アルゴリズム) です。誰かがそれを手伝ってくれたら本当にありがたいです?
入力は、さまざまな座標のセットです。たとえば、次のとおりです。
必要な出力は、場所 1 と場所 2 の間の距離です。
私の試み:
.net - C# Math.Pow() が壊れている
いいえ、これは (私の理解では) 整数除算や浮動小数点の丸めの問題を伴いません。
私の正確なコードは次のとおりです。
出力は次のとおりです。
sanity check: expected: -128 ^ 0.142857142857143 = -2. actual: -128 ^ 0.14285
7142857143 = NaN
このコードのターゲット フレームワークは、(ソリューション プロパティによると) .NET Framework 4.0 Client Profile です。
奇妙なことに、私は Web のどこにもこれについての言及を見つけませんでした。私はここでクレイジーな薬を飲んでいます!?
c++ - 1 に非常に近いベースに対して非常に遅い std::pow()
方程式を解く数値コードがあり、累乗する必要がありf(x) = 0
ます。いろいろ使って解いていくのですが、結局はニュートン法です。解はたまたま に等しく、それが問題の原因です。反復解が例えば に近づくと、計算に必要な時間が途方もなく大きくなり、簡単に 100 倍になり、コードが使用できなくなります。x
p
x = 1
1
x = 1 + 1e-13
std::pow(x, p)
このことを実行しているマシンは、CentOS の AMD64 (Opteron 6172) であり、コマンドは単純y = std::pow(x, p);
です。私のすべてのマシン、すべて x64 で同様の動作が見られます。hereに記載されているように、これは私だけの問題ではなく (つまり、他の誰かも腹を立てています)、x64 でのみ発生しx
、1.0
. 同様のことが起こりexp
ます。
この問題を解決することは、私にとって非常に重要です。この遅さを回避する方法があるかどうか誰かが知っていますか?
編集: ジョンは、これは非正規化によるものだと指摘しました。問題は、これをどのように修正するかです。コードは C++ で、g++
で使用するために でコンパイルされていますGNU Octave
。とCXXFLAGS
を含めるように設定しましたが、それは役に立たず、コードの実行が遅くなるようです。-mtune=native
-ffast-math
今のところ疑似的な解決策: この問題を気にかけているすべての人に、以下に提案されている解決策は個人的にはうまくいきませんでした。の通常の速度が本当に必要ですが、std::pow()
周りのもたつきはありませんx = 1
。個人的な解決策は、次のハックを使用することです。
範囲は変更できますが、-40 < p < 40 の場合、誤差は約 1e-11 よりも小さく、これで十分です。オーバーヘッドは私が見つけたものから最小限であるため、問題は解決します。
c++ - 奇妙なpow(x、y); 行動
宿題をしていると、理由がわからないという本当に奇妙なことに気づきました。
結果は25です。それで問題ありません。しかし、私がこのように同じプログラムを書く場合:
結果は24です!
xが2、3、4、6、7、8の場合は問題ありませんが、5、10、11、13などの場合、結果は本来より1低くなります。
if()でも同じです。
数字の1、2、3、4、6、8、12、16を出力します。
java - Java-Math.pow()およびMath.sqrt()のより高速な代替
私のプログラムはMath.pow()
、2の累乗で比較的大きな倍数を計算するために使用します。後で、非常に大きな倍数の平方根を見つける必要があります。問題は、これを10万回以上行う必要があり、非常に時間がかかることです。このプロセスをスピードアップできる代替手段はありますか?ありがとう
編集:大きな数字とは、1000から10000の間を意味します(したがって、計算用語ではおそらくそれほど大きくはありません)。そして、時間がかかるという点では、500回の機能を実行するのに約30秒かかります
sum - sqrt(x2 − x1)^2 (y2 − y1)^2 を適切な Java コードに変換するにはどうすればよいですか
2 点間の距離の方程式をどのように変換しますか。
適切なJavaコードに?
c++ - 式で pow 関数を使用する
だからここに私のコードがあります。私は C++ 言語を初めて使用し、クラスでプロジェクトを割り当てられ、住宅ローンの毎月の支払いを計算する必要があります。
関数を使用しpow
、累乗を式で掛ける必要があります。これが私が試したことです:
プログラムを実行すると、 の答えが得られます1.#inf
。
どんな助けでも大歓迎です。
java - Math.pow の使用が許可されていない場合に指数を計算しますか?
pow2
実数の基数と整数の指数をパラメーターとして受け入れるという名前のメソッドを作成する必要があります。指定された累乗に累乗された基数を返す必要があります。コードは、正の指数と負の指数の両方で機能するはずです。たとえば、呼び出しは をpow2(2.0, -2)
返します0.25
。ソリューションで Math.pow を使用しないでください。
これは私がこれまでに持っているものです:
しかし問題は、 を呼び出そうとするとpow(2.0, -2)
、代わりに 1.0 が返されることです。このメソッドを実装するにはどうすればよいですか?
c++ - 変数を使用した C++ 累乗関数
ここでエラーが発生し、 pow 関数を正しく使用する方法が正確にわかりません。問題に応じた式は次のとおりです。
これが私が問題を抱えている行です
month = (金額 * レート)/1.0 -(1.0 + 金利), pow(時間*12);
助けてくれてありがとう
c++ - 再帰 C++ の Pow 関数
再帰関数でpow関数を使用できますか? 例えば: