• 复数类


    protected void Page_Load(object sender, EventArgs e)
        {
            complex complex_a = new complex(1.0, 1.0);
            complex complex_b = new complex(2.0, 2.0);
            Response.Write("加法运算结果:" + complex_a.complex_add(complex_b).ToString() + "<br />");
            Response.Write("减法运算结果:" + complex_a.complex_minus(complex_b).ToString() + "<br />");
            Response.Write("乘法运算结果:" + complex_a.complex_multi(complex_b).ToString() + "<br />");
            Response.Write("除法运算结果:" + complex_a.complex_divide(complex_b).ToString());
        }
        //design by 阿会楠 来自:搜索吧 sosuo8.com
        public class complex
        {
            //复数中的实部
            private double complex_real;
            //复数中的虚部
            private double complex_imagin;

            //构造函数
            public complex(double r, double i)
            {
                complex_real = r;
                complex_imagin = i;
            }
      
            //重写ToString()方法
            public override string ToString()
            {
                return this.complex_real + "+" + this.complex_imagin + "i";
            }

            //复数加法运算
            public complex complex_add(complex c)
            {
                //取得加法运算后的实部
                double complex_real = this.complex_real + c.complex_real;

                //取得加法运算后的虚部
                double complex_imagin = this.complex_imagin + c.complex_imagin;

                //返回一个复数类
                 return new complex(complex_real,complex_imagin);
            }

            //复数减法运算
            public complex complex_minus(complex c)
            {
                //取得减法运算后的实部
                double complex_real = this.complex_real - c.complex_real;

                //取得减法运算后的虚部
                double complex_imagin = this.complex_imagin - c.complex_imagin;

                //返回一个复数类
                return new complex(complex_real, complex_imagin);
            }

            //乘法运算
            public complex complex_multi(complex c)
            {
                //取得乘法运算后的实部
                double complex_real = this.complex_real * c.complex_real - this.complex_imagin * c.complex_imagin;

                //取得乘法运算后的虚部
                double complex_imagin = this.complex_real * c.complex_imagin + this.complex_imagin * c.complex_real;

                //返回一个复数类
                return new complex(complex_real, complex_imagin);
            }

            //除法运算结果 (a+bi)/(c+di)=(a+bi)(c-di)/(c+di)(c-di)
            public complex complex_divide(complex c)
            {
                //取得(c+di)(c-di)的值
                double d = c.complex_real * c.complex_real + c.complex_imagin * c.complex_imagin;

                //取得除法运算后的实部
                double complex_real = (this.complex_real * c.complex_real + this.complex_imagin * c.complex_imagin) / d;

                //取得除法运算后的虚部
                double complex_imagin = (this.complex_real * (-c.complex_imagin) + this.complex_imagin * c.complex_real) / d;

                //返回一个复数类
                return new complex(complex_real, complex_imagin);
            }
        }

  • 相关阅读:
    LeetCode数学系列(3)——快速幂算法(50题)
    LeetCode树系列(3)——200题岛屿数量
    Arrays.sort()详解
    图表示学习系列(1)——GCN学习笔记:第一部分,详细讲解GCN
    LeetCode动态规划系列(3)——编辑距离问题求解
    深度学习系列(9)——node2vec算法中的alias采样介绍
    LeetCode数学系列(2)——解决约瑟夫问题
    Java数据结构系列(4)——队列常用方法
    LeetCode树系列(1)——广度搜索应用,图的BFS
    LeetCode树系列(2)——深度搜索运用:LeetCode695题详解
  • 原文地址:https://www.cnblogs.com/gxlinhai/p/1009387.html
Copyright © 2020-2023  润新知