問題タブ [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.

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

php - 大円アルゴリズムの実装

以下は、PHP に変換したい数式 (Great Circle アルゴリズム) です。誰かがそれを手伝ってくれたら本当にありがたいです?

入力は、さまざまな座標のセットです。たとえば、次のとおりです。

必要な出力は、場所 1 と場所 2 の間の距離です。

私の試み:

0 投票する
6 に答える
9009 参照

.net - C# Math.Pow() が壊れている

いいえ、これは (私の理解では) 整数除算や浮動小数点の丸めの問題を伴いません。

私の正確なコードは次のとおりです。

出力は次のとおりです。

sanity check: expected: -128 ^ 0.142857142857143 = -2. actual: -128 ^ 0.14285 7142857143 = NaN

このコードのターゲット フレームワークは、(ソリューション プロパティによると) .NET Framework 4.0 Client Profile です。

奇妙なことに、私は Web のどこにもこれについての言及を見つけませんでした。私はここでクレイジーな薬を飲んでいます!?

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

c++ - 1 に非常に近いベースに対して非常に遅い std::pow()

方程式を解く数値コードがあり、累乗する必要がありf(x) = 0ます。いろいろ使って解いていくのですが、結局はニュートン法です。解はたまたま に等しく、それが問題の原因です。反復解が例えば に近づくと、計算に必要な時間が途方もなく大きくなり、簡単に 100 倍になり、コードが使用できなくなります。xpx = 11x = 1 + 1e-13std::pow(x, p)

このことを実行しているマシンは、CentOS の AMD64 (Opteron 6172) であり、コマンドは単純y = std::pow(x, p);です。私のすべてのマシン、すべて x64 で同様の動作が見られます。hereに記載されているように、これは私だけの問題ではなく (つまり、他の誰かも腹を立てています)、x64 でのみ発生しx1.0. 同様のことが起こりexpます。

この問題を解決することは、私にとって非常に重要です。この遅さを回避する方法があるかどうか誰かが知っていますか?

編集: ジョンは、これは非正規化によるものだと指摘しました。問題は、これをどのように修正するかです。コードは C++ で、g++で使用するために でコンパイルされていますGNU Octave。とCXXFLAGSを含めるように設定しましたが、それは役に立たず、コードの実行が遅くなるようです。-mtune=native-ffast-math

今のところ疑似的な解決策: この問題を気にかけているすべての人に、以下に提案されている解決策は個人的にはうまくいきませんでした。の通常の速度が本当に必要ですが、std::pow()周りのもたつきはありませんx = 1。個人的な解決策は、次のハックを使用することです。

範囲は変更できますが、-40 < p < 40 の場合、誤差は約 1e-11 よりも小さく、これで十分です。オーバーヘッドは私が見つけたものから最小限であるため、問題は解決します。

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

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を出力します。

0 投票する
5 に答える
16468 参照

java - Java-Math.pow()およびMath.sqrt()のより高速な代替

私のプログラムはMath.pow()、2の累乗で比較的大きな倍数を計算するために使用します。後で、非常に大きな倍数の平方根を見つける必要があります。問題は、これを10万回以上行う必要があり、非常に時間がかかることです。このプロセスをスピードアップできる代替手段はありますか?ありがとう

編集:大きな数字とは、1000から10000の間を意味します(したがって、計算用語ではおそらくそれほど大きくはありません)。そして、時間がかかるという点では、500回の機能を実行するのに約30秒かかります

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

sum - sqrt(x2 − x1)^2 (y2 − y1)^2 を適切な Java コードに変換するにはどうすればよいですか

2 点間の距離の方程式をどのように変換しますか。

適切なJavaコードに?

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

c++ - 式で pow 関数を使用する

だからここに私のコードがあります。私は C++ 言語を初めて使用し、クラスでプロジェクトを割り当てられ、住宅ローンの毎月の支払いを計算する必要があります。

関数を使用しpow、累乗を式で掛ける必要があります。これが私が試したことです:

プログラムを実行すると、 の答えが得られます1.#inf

どんな助けでも大歓迎です。

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

java - Math.pow の使用が許可されていない場合に指数を計算しますか?

pow2実数の基数と整数の指数をパラメーターとして受け入れるという名前のメソッドを作成する必要があります。指定された累乗に累乗された基数を返す必要があります。コードは、正の指数と負の指数の両方で機能するはずです。たとえば、呼び出しは をpow2(2.0, -2)返します0.25。ソリューションで Math.pow を使用しないでください。

これは私がこれまでに持っているものです:

しかし問題は、 を呼び出そうとするとpow(2.0, -2)、代わりに 1.0 が返されることです。このメソッドを実装するにはどうすればよいですか?

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

c++ - 変数を使用した C++ 累乗関数

ここでエラーが発生し、 pow 関数を正しく使用する方法が正確にわかりません。問題に応じた式は次のとおりです。

これが私が問題を抱えている行です

month = (金額 * レート)/1.0 -(1.0 + 金利), pow(時間*12);

助けてくれてありがとう

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

c++ - 再帰 C++ の Pow 関数

再帰関数でpow関数を使用できますか? 例えば: