在python中,指数如何在复杂的数据结构中工作



我在python中探索复杂的数据结构。我在python IDLE中完成了两个复数值之间的加法、减法、乘法和除法。所有这些都有道理,但当我试图对一个复杂的值进行指数化时,出现了一些奇怪的事情。我不知道那是怎么发生的!有人能向我解释一下引擎盖下面发生了什么吗?

我试图理解以下代码:

>>> w = complex(2, -3)
>>> v = complex(5)
>>> w ** v
(122+597j)

所以,我想知道w ** v如何评估为(122+597j)。提前谢谢。

您得到的答案在数学上是正确的:https://www.wolframalpha.com/input/?i=(2-3i)%5E5

如果你知道如何乘复数,它和w*w*w*w*w是一样的。

如果你不这样做,给你:http://mathworld.wolfram.com/ComplexMultiplication.html

回想一下complex(2,-3) = 2 - 3j。使用牛顿公式,您可以得到

(a + b)**5 = a**5 + 5 a**4 b + 10 a**3 b**2 + 
10 a**2 b**3 + 5 a b**4 + b**5

将牛顿公式应用于我们的情况,你会得到

(2 - 3j) ** 5 = 
2 ** 5 - 5 * 2**4 * 3j - 
10 * 2**3 * 3**2 + 
10 * 2**2 * 3**3 j +
5 * 2 * 3**4 - 3**5 j =
(2 ** 5 - 10 * 2**3 * 3**2 + 5 * 2 * 3**4) +
(- 5 * 2**4 *3  + 10 * 2**2 * 3**3 - 3**5)j =
122 + 597j

最新更新