复数乘法运算(三次实数乘法)-c++代码实现
来源:互联网 发布:917发卡软件 编辑:程序博客网 时间:2024/04/29 05:54
设计算法,仅使用三次实数乘法即可完成复数Z1=a+b*i,Z2=c+d*i相乘,根据复数乘法的计算公式:Z1*Z2=(a*c-b*d)+(a*d+b*c)i,可以使用加法或者减法来减少乘法运算的时间。计算temp1=a*d,temp2=b*c,temp3=(a+b)(c-d),虚部为temp1+temp2,实部为temp3+temp1-temp2
c++代码
#include <iostream>using namespace std;class matrixmul{private: double real; double imag;public: void output();//打印输出 void initSet(double re,double im);//初始化 matrixmul matrixMul(matrixmul Z1,matrixmul Z2);//函数返回值是multirxmul,所以此函数类型为matrixmal};matrixmul matrixmul::matrixMul(matrixmul Z1,matrixmul Z2){ double temp1,temp2,temp3; matrixmul result; temp1=Z1.real*Z2.imag; temp2=Z1.imag*Z2.real; temp3=(Z1.imag+Z1.real)*(Z2.real-Z2.imag); result.real=temp1+temp3-temp2; result.imag=temp1+temp2; return result;}void matrixmul::initSet(double re,double im){ real=re; imag=im;}void matrixmul::output(){ if(imag>0) { cout<<real<<"+"<<imag<<"i"<<endl; } else if(imag==0) { cout<<real<<endl; } else if(imag<0) { cout<<real<<imag<<"i"<<endl; }}int main(){ matrixmul Z1,Z2,Z3,result; Z1.initSet(1,-2); Z2.initSet(3,-4); cout<<"第一个复数Z1为:"<<endl; Z1.output(); cout<<"第二个复数Z2为:"<<endl; Z2.output(); result=Z3.matrixMul(Z1,Z2); cout<<"两复数相乘结果的复数为:"<<endl; result.output(); return 0;}
运行结果
阅读全文
0 0
- 复数乘法运算(三次实数乘法)-c++代码实现
- 三次乘法完成复数相乘的实现
- PAT Basic 1051. 复数乘法 (15)(C语言实现)
- 复数矩阵乘法C语言实现
- 复数矩阵乘法C语言实现
- 高精度运算——实数乘法
- 大数乘法运算Java代码实现
- 一元多项式的乘法运算(C语言)实现
- 关于C语言实现高精度乘法运算
- 大数乘法运算实现
- 实现乘法运算
- 采用booth算法实现两个8bit实数的乘法运算
- uva 748 Exponentiation(高精度实数乘法)
- HDU 1063 (实数的乘法)
- 位运算实现乘法运算
- 利用三次实数相乘实现两复数相乘
- 创建一个complex包,包中定义一个复数类Complex,实现复数的加减乘法(包括其中有一个是实数的情况)以及相应的set /get方法,然后编写另一个应用程序进行验证包
- 高精度乘法运算的实现(不完全)
- 原来CSS与JS是这样阻塞DOM解析和渲染的
- SVG淋浴小动画
- 程序员总出BUG,这9个容易犯的错误编程你避免了吗?
- 这些好习惯,能让你成为一名成功的程序员
- 深入理解python中的生成器
- 复数乘法运算(三次实数乘法)-c++代码实现
- Web前端学习路线
- Mybatis
- mysql知识整理
- Could not read document: Can not deserialize instance of java.lang.xxx out of START_OBJECT token
- [运维]Can't init tc log
- 简单的桶排序(个人练习算法)
- iOS使用MBProgressHUD出现的坑
- 使用ZXing实现二维码扫描