java提供按摩比较复数大小_复数类实现 - kb

这篇博客讨论了如何在Java中实现复数类,包括加、减、乘、除等基本运算。博主分享了一个简单的复数类实现,并提到了Apache Commons Math库中的Complex类作为参考,探讨了代码优化的可能性。
摘要由CSDN通过智能技术生成

Feedback

# re: 复数类实现 - kb

2005-07-29 00:08

Flair@ZJU

:p, so many hidden bugs... anyway, it's nice to have a try.

Here is a good reference: org.apache.commons.math.complex.Complex  回复  更多评论

# re: 复数类实现 - kb

2005-07-29 00:51

第二小组

.......so many hidden bugs......?

Really?

看来我的代码还是很烂啊.

可不可以指点一下?让我也长长记性.  回复  更多评论

# re: 复数类实现 - kb

2005-07-29 01:06

第二小组

刚才看了一下org.apache.commons.math.complex.Complex ,

确实感觉出差距来了,但不知道它内部是如何实现的,那样的话会更好的理解.其实很多的复数算法我都不知道是怎么算的,比如pow,sqrt,tan,etc......  回复  更多评论

# re: 复数类实现 - kb

2005-07-29 01:54

Flair@ZJU

# 复数类实现

2006-10-19 17:19

坚持到底[匿名]

/*复数类的实现:湖南农业大学信息科学技术学院计算机科学与技术八班(坚持到底) 2006-10-19 */

/*复数加法公式:(a+bi)+(c+di)=(a+c)+(b+d)i*/

/*复数减法公式:(a+bi)-(c+di)=(a-c)+(b-d)i*/

/*复数乘法公式:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i*/

/*复数除法公式:(a+bi)/(c+di)=[(ac+bd)/(c*c+d*d)]+[(bc-ad)/(c*c+d*d)]i*/

public class ComplexNumber {

//属性部分定义

//定义复数部分实部

double m_dRealpart;

//定义复数部分虚部

double m_dImaginpart;

//定义一个中间变量

double R_dRealpart;

//定义一个除法实部

double Realpart;

//方法部分定义

//构造函数实现部分

public ComplexNumber (double r,double I){

this.m_dRealpart=r;

this.m_dImaginpart=I;

}

//获取复数实部值

double getRealpart(){

return this.m_dRealpart;

}

//获取复数虚部值

double getImaginpart(){

return this.m_dImaginpart;

}

//设置复数实部值

void setRealpart(double temp){

this.m_dRealpart=temp;

}

//设置复数虚部值

void setImaginpart(double temp){

this.m_dImaginpart=temp;

}

//两个复数对象加法运算

ComplexNumber complexAdd(ComplexNumber c){

this.m_dRealpart=this.m_dRealpart+c.m_dRealpart;

this.m_dImaginpart=this.m_dImaginpart+c.m_dImaginpart;

return this;

}

//两个复数对象的减法运算

ComplexNumber complexMinus(ComplexNumber c){

this.m_dRealpart=this.m_dRealpart-c.m_dRealpart;

this.m_dImaginpart=this.m_dImaginpart-c.m_dImaginpart;

return this;

}

//两个复数对象的乘法运算

ComplexNumber complexChen(ComplexNumber c){

R_dRealpart=this.m_dRealpart;

this.m_dRealpart=this.m_dRealpart*c.m_dRealpart-this.m_dImaginpart*c.m_dImaginpart;

this.m_dImaginpart=R_dRealpart*c.m_dImaginpart+c.m_dRealpart*this.m_dImaginpart;

return this;

}

//两个复数对象的除法运算

ComplexNumber complexChu(ComplexNumber c){

Realpart=this.m_dRealpart;

this.m_dRealpart=(Realpart*c.m_dRealpart+this.m_dImaginpart*c.m_dImaginpart)/(c.m_dRealpart*c.m_dRealpart+c.m_dImaginpart*c.m_dImaginpart);

this.m_dImaginpart=(this.m_dImaginpart*c.m_dRealpart-Realpart*c.m_dImaginpart)/(c.m_dRealpart*c.m_dRealpart+c.m_dImaginpart*c.m_dImaginpart);

return this;

}

//构造一个a+bi的字符串形式

public String toString(){

String strTemp="";

strTemp=this.m_dRealpart+"+"+

this.m_dImaginpart+"i";

return strTemp;

}

public static void main(String[] args) {

//输出两个复数相加结果

ComplexNumber complex1 = new ComplexNumber(10.0,10.0);

System.out.println("m_dRealPart:"+complex1.m_dRealpart);

ComplexNumber complex2 = new ComplexNumber(3.0,5.0);

System.out.println("\n\ncomplex1:"+complex1.toString());

System.out.println("complex2:"+complex2.toString());

complex1.complexAdd(complex2);

System.out.println("complex1+complex2=" + complex1.toString());

//输出两个复数相减结果

ComplexNumber complex3 = new ComplexNumber(10.0,10.0);

System.out.println("\n\ncomplex3:"+complex3.toString());

System.out.println("complex2:"+complex2.toString());

complex3.complexMinus(complex2);

System.out.println("complex3-complex2="+complex3.toString());

//输出两个复数相乘结果

ComplexNumber complex4 = new ComplexNumber(-1.0,2.0);

System.out.println("\n\ncomplex4:"+complex4.toString());

ComplexNumber complex5 = new ComplexNumber(2.0,-3.0);

System.out.println("complex5:"+complex5.toString());

complex4.complexChen(complex5);

System.out.println("complex4*complex5="+complex4.toString());

//输出两个复数相除结果

ComplexNumber complex6 = new ComplexNumber(1.0,2.0);

System.out.println("\n\ncomplex6:"+complex6.toString());

ComplexNumber complex7 = new ComplexNumber(2.0,3.0);

System.out.println("complex7:"+complex7.toString());

complex6.complexChu(complex7);

System.out.println("complex6/complex7="+complex6.toString());

}

}

回复  更多评论

# 复数类实现

2006-10-19 17:22

坚持到底[匿名]

//file: ComplexNumber.java

/*复数类的实现:湖南农业大学信息科学技术学院计算机科学与技术八班(坚持到底) 2006-10-19 */

/*复数加法公式:(a+bi)+(c+di)=(a+c)+(b+d)i*/

/*复数减法公式:(a+bi)-(c+di)=(a-c)+(b-d)i*/

/*复数乘法公式:(a+bi)*(c+di)=(ac-bd)+(ad+bc)i*/

/*复数除法公式:(a+bi)/(c+di)=[(ac+bd)/(c*c+d*d)]+[(bc-ad)/(c*c+d*d)]i*/

public class ComplexNumber {

//属性部分定义

//定义复数部分实部

double m_dRealpart;

//定义复数部分虚部

double m_dImaginpart;

//定义一个中间变量

double R_dRealpart;

//定义一个除法实部

double Realpart;

//方法部分定义

//构造函数实现部分

public ComplexNumber (double r,double I){

this.m_dRealpart=r;

this.m_dImaginpart=I;

}

//获取复数实部值

double getRealpart(){

return this.m_dRealpart;

}

//获取复数虚部值

double getImaginpart(){

return this.m_dImaginpart;

}

//设置复数实部值

void setRealpart(double temp){

this.m_dRealpart=temp;

}

//设置复数虚部值

void setImaginpart(double temp){

this.m_dImaginpart=temp;

}

//两个复数对象加法运算

ComplexNumber complexAdd(ComplexNumber c){

this.m_dRealpart=this.m_dRealpart+c.m_dRealpart;

this.m_dImaginpart=this.m_dImaginpart+c.m_dImaginpart;

return this;

}

//两个复数对象的减法运算

ComplexNumber complexMinus(ComplexNumber c){

this.m_dRealpart=this.m_dRealpart-c.m_dRealpart;

this.m_dImaginpart=this.m_dImaginpart-c.m_dImaginpart;

return this;

}

//两个复数对象的乘法运算

ComplexNumber complexChen(ComplexNumber c){

R_dRealpart=this.m_dRealpart;

this.m_dRealpart=this.m_dRealpart*c.m_dRealpart-this.m_dImaginpart*c.m_dImaginpart;

this.m_dImaginpart=R_dRealpart*c.m_dImaginpart+c.m_dRealpart*this.m_dImaginpart;

return this;

}

//两个复数对象的除法运算

ComplexNumber complexChu(ComplexNumber c){

Realpart=this.m_dRealpart;

this.m_dRealpart=(Realpart*c.m_dRealpart+this.m_dImaginpart*c.m_dImaginpart)/(c.m_dRealpart*c.m_dRealpart+c.m_dImaginpart*c.m_dImaginpart);

this.m_dImaginpart=(this.m_dImaginpart*c.m_dRealpart-Realpart*c.m_dImaginpart)/(c.m_dRealpart*c.m_dRealpart+c.m_dImaginpart*c.m_dImaginpart);

return this;

}

//构造一个a+bi的字符串形式

public String toString(){

String strTemp="";

strTemp=this.m_dRealpart+"+"+

this.m_dImaginpart+"i";

return strTemp;

}

public static void main(String[] args) {

//输出两个复数相加结果

ComplexNumber complex1 = new ComplexNumber(10.0,10.0);

System.out.println("m_dRealPart:"+complex1.m_dRealpart);

ComplexNumber complex2 = new ComplexNumber(3.0,5.0);

System.out.println("\n\ncomplex1:"+complex1.toString());

System.out.println("complex2:"+complex2.toString());

complex1.complexAdd(complex2);

System.out.println("complex1+complex2=" + complex1.toString());

//输出两个复数相减结果

ComplexNumber complex3 = new ComplexNumber(10.0,10.0);

System.out.println("\n\ncomplex3:"+complex3.toString());

System.out.println("complex2:"+complex2.toString());

complex3.complexMinus(complex2);

System.out.println("complex3-complex2="+complex3.toString());

//输出两个复数相乘结果

ComplexNumber complex4 = new ComplexNumber(-1.0,2.0);

System.out.println("\n\ncomplex4:"+complex4.toString());

ComplexNumber complex5 = new ComplexNumber(2.0,-3.0);

System.out.println("complex5:"+complex5.toString());

complex4.complexChen(complex5);

System.out.println("complex4*complex5="+complex4.toString());

//输出两个复数相除结果

ComplexNumber complex6 = new ComplexNumber(1.0,2.0);

System.out.println("\n\ncomplex6:"+complex6.toString());

ComplexNumber complex7 = new ComplexNumber(2.0,3.0);

System.out.println("complex7:"+complex7.toString());

complex6.complexChu(complex7);

System.out.println("complex6/complex7="+complex6.toString());

}

}

回复  更多评论

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值