首页 > 其他 > 详细

利用三次实数相乘实现两复数相乘代码

时间:2021-04-17 17:29:35      阅读:9      评论:0      收藏:0      [点我收藏+]

两复数相乘计算:

(a + bi) * (c + di) = (a*c - b*d) + (a*d + b*c)i
需要四次乘法,两次加法,而可以通过下面的方法优化:

A = (a + b) * c
B = (c + d) * b
C = (b - a) * d
(a + bi) * (c + di) = (A - B) + (B - C)i
这样需要三次乘法五次加法,而对于计算机而言计算加法显然比乘法快很多,可以用此方法来优化复数计算。

 


#include<stdio.h>

#include<math.h>

int play(double a, double b, double c, double d)
{
double A,B,C,m,n;
A = (a + b) * c;
B = (c + d) * b;
C = (b - a) * d;
m = (A - B);
n = (B - C);
printf("%.2lf", m);
printf("+%.2lfi", n);
return 0;
}
int main()
{
double a1, a2, b1, b2;
double m, n, c = 0;
scanf_s("%lf%lf%lf%lf", &a1, &b1, &a2, &b2);
play(a1,b1,a2,b2);

}

利用三次实数相乘实现两复数相乘代码

原文:https://www.cnblogs.com/1qwe/p/14670592.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!