最近,我正在尝试使用一些包含虚数i的方程式进行计算。但是,与eπ不同,没有任何方法或 native 函数会返回i。 Google的quick search没给我任何答案。关于如何实现的任何想法?

function imaginary(){
    return {
        rational: this,
        imaginary: "2i"  //magic code that does this
    };
};
Number.prototype.imaginary = imaginary;

最佳答案

假设您真的想要复数,而不仅仅是虚数:

我将为复数建模,就像为2D点建模(即一对数字)一样。

正如一个点具有x和y分量一样,复数也具有实部和虚部。
这两个组件都可以使用普通的数字类型(int,float等)建模。

但是,您将需要为所有数学运算定义新功能。

复数的加法和减法与点的加法和减法的工作方式相同-相互添加单独的成分,请勿混合。例如:

(3 + 2i)+(5 + 4i)=(8 + 6i)

乘法的工作原理就像您在乘(a + b)*(c + d)=(ac + ad + bc + bd)时在代数中学到的一样。

除了现在,您还必须记住i * i = -1。所以:

(a + bi)*(c + di)=(ac + adi + bci + bdii)=(ac-bd)+(ad + bc)i

有关除法和求幂的信息,请参见http://en.wikipedia.org/wiki/Complex_number

09-25 18:33