Java 我将复数提升为幂的方法有什么问题
我的方法使用De Moivre定理将复数a+bi提升为幂。然而,我没有得到正确的答案 我仔细检查了我所有的数学,结果似乎没问题,所以我想我可能是把代码弄错了Java 我将复数提升为幂的方法有什么问题,java,complex-numbers,Java,Complex Numbers,我的方法使用De Moivre定理将复数a+bi提升为幂。然而,我没有得到正确的答案 我仔细检查了我所有的数学,结果似乎没问题,所以我想我可能是把代码弄错了 public class ComplexNumber { //instance variables private int real; private int imaginary; //constructors public ComplexNumber(int a, int b) { real =
public class ComplexNumber {
//instance variables
private int real;
private int imaginary;
//constructors
public ComplexNumber(int a, int b) {
real = a;
imaginary = b;
//methods
public ComplexNumber pow(int x) {
int z = (int) Math.pow(this.getModulus(),x);
int T = (int) Math.atan(this.imaginary/this.real);
int a = (int) (z * Math.cos(x*T));
int b = (int) (z * Math.sin(x*T));
return new ComplexNumber(a, b);
}
public double getModulus() {
int z = (int) Math.sqrt(real*real + imaginary*imaginary);
return z;
}
例如,对于提高到1次方的复数3+4i,我得到的是5+0i。可能与您如何将所有内容强制转换为
int
以及在此过程中丢失信息有关?如果您展示如何调用此信息,以及诸如this.invential
之类的变量包含/定义了什么,这将非常有用。您发布的代码不是一个。请阅读该链接,学习如何编写一个。如果您还没有这样做,请同时阅读,使用atan
而不是atan2
表示您失去象限