java提供按摩比较复数大小_java – 用理性指数计算复数

昨天我创建了这段可以计算z ^ n的代码,其中z是一个复数,n是任何正整数.

--snip--

float real = 0;

float imag = 0;

// d is the power the number is raised to [(x + yi)^d]

for (int n = 0; n <= d; n++) {

if (n == 0) {

real += pow(a, d);

} else { // binomial theorem

switch (n % 4) {

case 1: // i

imag += bCo(d, n) * pow(a, d - n) * pow(b, n);

break;

case 2: // -1

real -= bCo(d, n) * pow(a, d - n) * pow(b, n);

break;

case 3: // -i

imag -= bCo(d, n) * pow(a, d - n) * pow(b, n);

break;

case 0: // 1

real += bCo(d, n) * pow(a, d - n) * pow(b, n);

break;

}

}

}

--snip--

int factorial(int n) {

int total = 1;

for (int i = n; i > 1; i--) { total *= i; }

return total;

}

// binomial cofactor

float bCo(int n, int k) {

return (factorial(n)/(factorial(k) * factorial(n - k)));

}

我使用二项式定理来扩展z ^ n,并知道是否根据虚数的幂将每个项视为实数或虚数.

我想要做的是能够计算z ^ n,其中n是任何正实数(分数).我知道二项式定理可以用于不是整数的幂,但我不确定如何处理复数.因为i ^ 0.1具有实部和虚部,所以我不能将其分类为实数或虚数变量,我甚至不知道如何编程可以计算它的东西.

有没有人知道一种可以帮助我实现这一目标的算法,或者甚至是一种更好的方法来处理能够实现这一目标的复数?

哦,我正在使用java.

谢谢.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值