32

なぜPythonで0 ** 0等しいのですか?1のように、例外をスローするべきではあり0 / 0ませんか?

4

3 に答える 3

38

ウィキペディアには、歴史の興味深い報道と、次の価値に関するさまざまな視点が0 ** 0あります。

議論は少なくとも19世紀初頭から続いています。当時、ほとんどの数学者は0 ** 0 = 1、1821年まで、コーシーが未定義の形式の表の0 ** 0ような表現とともにリストされていることに同意しました。0⁄01830年代に、Libriは説得力のない議論を発表し0 ** 0 = 1、Möbiusは彼を支持しました...

コンピュータに適用されるように、IEEE754は電力を計算するためのいくつかの関数を推奨しています。それはpow(0, 0)pown(0, 0)を返すこと1、およびpowr(0, 0)を返すこととして定義しNaNます。

ほとんどのプログラミング言語は、その規則に従います0 ** 0 == 1。Pythonも例外ではなく、整数引数と浮動小数点引数の両方です。

于 2013-01-19T12:43:54.833 に答える
8

検討してx^xください:

制限を使用すると、ソリューションに簡単に到達でき、次のように再配置x^xできます。

x^x= exp(log(x^x))

今、私たちはから持っています:

lim x->0 exp(log(x^x))= exp(lim x->0 xlog(x)) = exp(lim x->0 log(x)/(x^-1))

L'Hôpitalルールを適用すると、次のようになります。

exp(lim x^-1/(-x^-2)) = exp(lim x->0 -x) = exp(0) = 1=x^x

しかし、Wolfram Alphaによると、0**0不確定であり、以下の説明が彼らによって得られました:

0^0自体は未定義です。この量の明確な意味の欠如は、a ^ 0が常に1であるため、0 ^ 0は1に等しいはずですが、0 ^ aは常に0(a> 0の場合)であるため、0^という相互に矛盾する事実に起因します。 0は0に等しいはずです。lim_(n-> 0)n ^ n = lim_(n-> 0 ^ +)n ^ n = lim_(n-> 0)なので、0 ^ 0=1は自然な定義であると主張できます。 ^-)n ^ n=1。ただし、nの一般的な複素数値には制限はありません。したがって、0 ^ 0の定義の選択は、通常、不確定であると定義されています。」

于 2013-01-19T12:59:20.360 に答える
-3

2 ^ 2 =(1 + 1)*(1 + 1)= 4(2つのオブジェクトが2回発生しました)

2 ^ 1 =(1 + 1)* 1 = 2(2つのオブジェクトが一度に発生しました)

2 ^ 0 =(1 + 1)* 0 = 0(2つのオブジェクトは発生しませんでした)

1 ^ 2 = 1 *(1 + 1)= 2(1つのオブジェクトが2回発生しました)

1 ^ 1 = 1 * 1 = 1(1つのオブジェクトが1回発生しました)

1 ^ 0 = 1 * 0 = 0(1つのオブジェクトは発生しませんでした)

0 ^ 2 = 0 *(1 + 1)= 0(ゼロオブジェクトが2回発生しました)

0 ^ 1 = 0 * 1 = 0(ゼロオブジェクトが1回発生)

0 ^ 0 = 0 * 0 = 0(ゼロオブジェクトは発生しませんでした)

したがって、何もないところから何かを作ることはできません!

于 2019-08-31T22:41:53.563 に答える