如何使用prototype在javascript中划分复数

如何使用prototype在javascript中划分复数,javascript,complex-numbers,Javascript,Complex Numbers,我使用java脚本中的原型创建了一个复杂函数的乘法 function ComplexNumber(real,imaginary) { this.real = real; this.imaginary = imaginary; } ComplexNumber.prototype = { mult: function() { var multiplier = arguments[0]; if(arguments.length != 1)

我使用java脚本中的原型创建了一个复杂函数的乘法

function ComplexNumber(real,imaginary) {
    this.real = real;
    this.imaginary = imaginary;
}
ComplexNumber.prototype = {
mult: function() {
         var multiplier = arguments[0];
         if(arguments.length != 1)
                multiplier = new ComplexNumber(arguments[0], arguments[1]);
         return new ComplexNumber(this.real * multiplier.real - this.imaginary * multiplier.imaginary,                    
         this.real * multiplier.imaginary + this.imaginary * multiplier.real);             
    },
 toString: function() {
       return this.real + " + " + this.imaginary + "j";
        }
 },
var complexA = new ComplexNumber(5, 8),
complexB = new ComplexNumber(3, 4),
complexSum = complexA.mult(complexB);
console.log(complexSum.toString());
我必须创建复数除法,我试过了,但没用。。。 以下是我的div函数:

div : function(){
         var multiplier = arguments[0];
         if(arguments.length != 1)
                multiplier = new ComplexNumber(arguments[0], arguments[1]);

        return new ComplexNumber((this.real * multiplier.real - this.imaginary * multiplier.imaginary,                    
         this.real * multiplier.imaginary + this.imaginary * multiplier.real)/( ((this.real)*(this.real))) +((this.multiplier)*(this.multiplier)));
    },

(a+ib)/(c+id)=(ac+bd+i(bc-ad))/(c^2+d^2)
公式,你需要这个:

var det = multiplier.real*multiplier.real + multiplier.imaginary * multiplier.imaginary;
return new ComplexNumber(
  (this.real * multiplier.real + this.imaginary * multiplier.imaginary)/det,                    
  (this.imaginary * multiplier.real - this.real * multiplier.imaginary)/det
);

(a+ib)/(c+id)=(ac+bd+i(bc-ad))/(c^2+d^2)
公式,你需要这个:

var det = multiplier.real*multiplier.real + multiplier.imaginary * multiplier.imaginary;
return new ComplexNumber(
  (this.real * multiplier.real + this.imaginary * multiplier.imaginary)/det,                    
  (this.imaginary * multiplier.real - this.real * multiplier.imaginary)/det
);

在问题的每个答案旁边,OP(你的问题)可以看到一个勾选框。如果提供了合适的答案,请单击此处以获得提供的最佳答案。每个问题只能选择一个答案,但您可以向上/向下投票选择任意多个问题。最后一个
问题
应该是
答案
,尽管您也可以向上/向下投票选择任意多个问题(在您的每日限制内)。在问题的每个答案旁边,OP(您可以选择您的问题)可以看到一个勾选标记。如果提供了合适的答案,请单击此处以获得提供的最佳答案。每个问题只能选择一个答案,但您可以向上/向下投票选择任意多个问题。最后的
问题
应该是
答案
,尽管您也可以向上/向下投票选择任意多个问题(在每日限制内)。谢谢!但是我发现了这个表达式:(a+ib)/(c+id)=(a+ib)(c+id)/(c^2+d^2)=>(ac+adi+bci+bdi^2)/(c^2+d^2)=>其中i^2=root(-1)->i.e=-1意味着我们的表达式是:当我们计算项(ac+adi+bci+bdi^2)/(c^2+d^2):我们得到以下表达式:(ac+adi+bci bd)/(c^2+d^2)谢谢!但是我找到了这个表达式:(a+ib)/(c+id)=(a+ib)(c+id)/(c^2+d^2)=>(ac+adi+bci+bdi^2)/(c^2+d^2)=>其中i^2=root(-1)->i.e=-1意味着我们的表达式是:当我们计算项(ac+adi+bci+bdi^2)/(c^2+d^2):我们得到以下表达式:(ac+adi+bci bd)/(c^2+d^2)