[解決済み] Math.pow(0, 0) === 1はなぜですか?
疑問点
私たちは皆、0 0 は不定です。
しかし , javascript がそう言っています。
Math.pow(0, 0) === 1 // true
と C++ は同じことを言う。
pow(0, 0) == 1 // true
なぜ?
それはわかっています。
>Math.pow(0.001, 0.001)
0.9931160484209338
しかし、なぜ
Math.pow(0, 0)
はエラーを投げないのでしょうか?あるいは
NaN
よりも
1
.
どのように解決するのですか?
C++の場合
<ストライク
pow(0, 0)の結果
という矛盾した状況になってしまうので、基本的には実装で定義された動作になります。
N^0
は常に
1
しかし
0^N
は常に
0
に対して
N > 0
というように、この結果についても数学的に期待しない方がよいでしょう。この
ウルフラムアルファ
フォーラムの投稿では、もう少し詳しく説明されています。
とはいえ
pow(0,0)
の結果は
1
は、多くのアプリケーションで
国際標準プログラミング言語-Cの根拠
をカバーするセクションで述べています。
IEC 60559 浮動小数点演算
をサポートしています。
一般的に、C99は数値が有用である場合、NaNの結果を敬遠します。[...] pow(∞,0) と pow(0,0) の結果は両方とも 1 で、この定義を利用できるアプリケーションがあるからです。例えば、x(p)とy(p)がp=aでゼロになる任意の解析的関数であれば、pow(x,y)はexp(y*log(x))に等しく、pがaに近づくと1に近づきます。
C++ を更新
leemes が正しく指摘したように、私は元々、リファレンスにリンクしている
複合体
のバージョンの
ポー
を実行中に
非複雑
バージョンでは
ドメインエラー
は
C++標準のドラフト
にフォールバックします。
C 標準草案
と
C99
と
C11
セクションで
7.12.7.4
pow関数
パラグラフ
2
は言う (
強調
):
[...]ドメインエラー が発生する可能性があります。 xがゼロでyがゼロの場合[...]です。
というのは、私の知る限りでは、この動作は
未指定の動作
少し巻き戻した部分
7.12.1
エラー条件の扱い
は言う。
[...]ドメインエラーは、入力引数が数学関数が定義されているドメインの外にある場合に発生します。 もし整数式 math_errhandling & MATH_ERRNO が0でなければ、整数式 errno は値 EDOM; [...] を獲得します。
ということは、もし
ドメインエラー
であれば、これは
実装で定義された動作
ということになりますが、最新版では
gcc
と
clang
の値は
errno
は
0
であるため
ドメインエラー
であるため、これらのコンパイラでは
ジャバスクリプトの更新
について
ジャバスクリプト
は
ECMAScript® 言語仕様
セクションで
15.8
Math オブジェクト
の下に
15.8.2.13
pow (x, y)
は、他の条件との間で次のように言っています。
yが+0なら、xがNaNでも結果は1です。
関連
-
[解決済み] JavaScriptで "use strict "は何をするのか、その根拠は?
-
[解決済み] なぜGoogleはJSONレスポンスにwhile(1);を前置するのでしょうか?
-
[解決済み] 私のJavaScriptコードは "No 'Access-Control-Allow-Origin' header is present on requested resource "というエラーを受け取りますが、Postmanはそうならないのはなぜですか?
-
[解決済み] .prop() vs .attr()
-
[解決済み] JSONPとは何か、なぜ作られたのか?
-
[解決済み] AngularJSでデータバインディングはどのように機能するのですか?
-
[解決済み] JavaScriptで配列の先頭に新しい配列要素を追加するにはどうすればよいですか?
-
[解決済み] なぜ、オブジェクトそのものではなく、ポインタを使用しなければならないのですか?
-
[解決済み] 配列からオブジェクトを生成する
-
[解決済み] javascriptで2つの数値を連結する方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】整数ベースのべき乗関数を実装する最も効率的な方法 pow(int, int)
-
[解決済み] JavaScriptで、ある文字列が別の文字列の中に出現するすべてのインデックスを見つけるにはどうすればよいですか?
-
[解決済み] 文字列が空白であるかどうかをチェックする
-
[解決済み] React js 親コンポーネントから子コンポーネントの状態を変更する
-
[解決済み] オブジェクトの配列からReactコンポーネントをレンダリングする
-
[解決済み] Javascript 空の配列の削減
-
[解決済み] サブドメインにまたがってlocalStorageを使用する
-
[解決済み] ECMAScriptとは?
-
[解決済み] jQueryで入力ファイルが空かどうかをチェックする方法
-
[解決済み] なぜjavascriptのES6 Promisesはresolve後も実行を継続するのですか?