为什么0到0的幂在求幂时不抛出数学域错误?

2ekbmq32  于 2021-07-14  发布在  Java
关注(0)|答案(0)|浏览(170)

虽然我经常很好地利用它,但我逐渐意识到,在一个更大的项目中,以下可能是一个问题。
在许多编码语言中,包括python,

0**0

返回1,不抛出值错误。乍一看,这似乎并不那么重要,但一旦对数出现在画面中,它就成了一个问题。这是一个可以避免的问题,但仍然很烦人。
想想这个

from math import log
foo = 0 * log(0)
bar = log(0**0)

在数学上, foo 以及 bar 是等价的,而对于python bar 为0,而 foo 抛出 MathDomainError 同样,如果导入 lognumpy , foonan 鉴于 bar 将为0。
当然,对于大多数应用程序来说,log0(0)只是零,但严格地说,在数学术语中,它是未定义的,应该由程序员专门处理。
我的问题是,有什么理由 0**0 = 1 或者这只是一个疏忽。
不管怎样,这其实并不重要,但有时会让人讨厌。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题