亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? complex.cs

?? 使用C#編輯的一些矩陣運(yùn)算的源程序
?? CS
字號(hào):
/*
 * 操作復(fù)數(shù)的類Complex
 *
 * 周長(zhǎng)發(fā)編制
 */

using System;

namespace CSharpAlgorithm.Algorithm
{
	/**
	 * 操作復(fù)數(shù)的類Complex

	 * @author 周長(zhǎng)發(fā)
	 * @version 1.0
	 */
	public class Complex 
	{
		private double real = 0.0;			// 復(fù)數(shù)的實(shí)部
		private double imaginary = 0.0;		// 復(fù)數(shù)的虛部
		private double eps = 0.0;           // 缺省精度

		/**
		 * 屬性: 實(shí)部
		 */
		public double Real
		{
			get
			{
				return real;
			}
			set
			{
				real = value;
			}
		}

		/**
		 * 屬性: 虛部
		 */
		public double Imaginary
		{
			get
			{
				return imaginary;
			}
			set
			{
				imaginary = value;
			}
		}

		/**
		 * 屬性: Eps
		 */
		public double Eps
		{
			get
			{
				return eps;
			}
			set
			{
				eps = value;
			}
		}

		/**
		 * 基本構(gòu)造函數(shù)
		 */
		public Complex() 
		{
		}

		/**
		 * 指定值構(gòu)造函數(shù)
		 * 
		 * @param dblX - 指定的實(shí)部
		 * @param dblY - 指定的虛部
		 */
		public Complex(double dblX, double dblY)
		{
			real = dblX;
			imaginary = dblY;
		}

		/**
		 * 拷貝構(gòu)造函數(shù)
		 * 
		 * @param other - 源復(fù)數(shù)
		 */
		public Complex(Complex other)
		{
			real = other.real;
			imaginary = other.imaginary;
		}

		/**
		 * 根據(jù)"a,b"形式的字符串來構(gòu)造復(fù)數(shù),以a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部
		 * 
		 * @param s - "a,b"形式的字符串,a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部
		 * @param sDelim - a, b之間的分隔符
		 */
		public Complex(string s, string sDelim)
		{
			SetValue(s, sDelim);
		}

		/**
		 * 設(shè)置復(fù)數(shù)運(yùn)算的精度
		 * 
		 * @param newEps - 新的精度值
		 */
		public void SetEps(double newEps)
		{
			eps = newEps;
		}
	
		/**
		 * 取復(fù)數(shù)的精度值
		 * 
		 * @return double型,復(fù)數(shù)的精度值
		 */
		public double GetEps()
		{
			return eps;
		}

		/**
		 * 指定復(fù)數(shù)的實(shí)部
		 * 
		 * @param dblX - 復(fù)數(shù)的實(shí)部
		 */
		public void SetReal(double dblX)
		{
			real = dblX;
		}

		/**
		 * 指定復(fù)數(shù)的虛部
		 * 
		 * @param dblY - 復(fù)數(shù)的虛部
		 */
		public void SetImag(double dblY)
		{
			imaginary = dblY;
		}

		/**
		 * 取復(fù)數(shù)的實(shí)部
		 * 
		 * @return double 型,復(fù)數(shù)的實(shí)部
		 */
		public double GetReal()
		{
			return real;
		}

		/**
		 * 取復(fù)數(shù)的虛部
		 * 
		 * @return double 型,復(fù)數(shù)的虛部
		 */
		public double GetImag()
		{
			return imaginary;
		}

		/**
		 * 指定復(fù)數(shù)的實(shí)部和虛部值
		 * 
		 * @param real - 指定的實(shí)部
		 * @param imag - 指定的虛部
		 */
		public void SetValue(double real, double imag)
		{
			SetReal(real);
			SetImag(imag);
		}
	
		/**
		 * 將"a,b"形式的字符串轉(zhuǎn)化為復(fù)數(shù),以a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部
		 * 
		 * @param s - "a,b"形式的字符串,a為復(fù)數(shù)的實(shí)部,b為復(fù)數(shù)的虛部
		 * @param sDelim - a, b之間的分隔符
		 */
		public void SetValue(string s, string sDelim)
		{
			int nPos = s.IndexOf(sDelim);
			if (nPos == -1)
			{
				s = s.Trim();
				real = Double.Parse(s);
				imaginary = 0;
			}
			else
			{
				int nLen = s.Length;
				string sLeft = s.Substring(0, nPos);
				string sRight = s.Substring(nPos+1, nLen-nPos-1);
				sLeft = sLeft.Trim();
				sRight = sRight.Trim();
				real = Double.Parse(sLeft);
				imaginary = Double.Parse(sRight);
			}
		}

		/**
		 * 重載 + 運(yùn)算符
		 * 
		 * @return Complex對(duì)象
		 */
		public static Complex operator +(Complex cpx1, Complex cpx2)
		{
			return cpx1.Add(cpx2);
		}

		/**
		 * 重載 - 運(yùn)算符
		 * 
		 * @return Complex對(duì)象
		 */
		public static Complex operator -(Complex cpx1, Complex cpx2)
		{
			return cpx1.Subtract(cpx2);
		}
		
		/**
		 * 重載 * 運(yùn)算符
		 * 
		 * @return Complex對(duì)象
		 */
		public static Complex operator *(Complex cpx1, Complex cpx2)
		{
			return cpx1.Multiply(cpx2);
		}

		/**
		 * 重載 / 運(yùn)算符
		 * 
		 * @return Complex對(duì)象
		 */
		public static Complex operator /(Complex cpx1, Complex cpx2)
		{
			return cpx1.Divide(cpx2);
		}
		
		/**
		 * 重載 double 運(yùn)算符
		 * 
		 * @return double值
		 */
		public static implicit operator double(Complex cpx)
		{
			return cpx.Abs();
		}

		/**
		 * 將復(fù)數(shù)轉(zhuǎn)化為"a+bj"形式的字符串
		 * 
		 * @return string 型,"a+bj"形式的字符串
		 */
		public override string ToString()
		{
			string s;
			if (real != 0.0)
			{
				if (imaginary > 0)
					s = real.ToString("F") + "+" + imaginary.ToString("F") + "j";
				else if (imaginary < 0)
				{
					double absImag = -1*imaginary;
					s = real.ToString("F") + "-" + absImag.ToString("F") + "j";
				}
				else
					s = real.ToString("F");
			}
			else
			{
				if (imaginary > 0)
					s = imaginary.ToString("F") + "j";
				else if (imaginary < 0)
				{
					double absImag = -1*imaginary;
					s = absImag.ToString("F") + "j";
				}
				else
					s = real.ToString("F");
			}

			return s;
		}

		/**
		 * 比較兩個(gè)復(fù)數(shù)是否相等
		 * 
		 * @param other - 用于比較的復(fù)數(shù)
		 * @return bool型,相等則為true,否則為false
		 */
		public override bool Equals(object other)
		{
			Complex cpxX = other as Complex;
			if (cpxX == null)
				return false;
			return Math.Abs(real - cpxX.real) <= eps && 
				Math.Abs(imaginary - cpxX.imaginary) <= eps; 
		}

		/**
		 * 因?yàn)橹貙懥薊quals,因此必須重寫GetHashCode
		 * 
		 * @return int型,返回復(fù)數(shù)對(duì)象散列碼
		 */
		public override int GetHashCode()
		{
			return (int)Math.Sqrt(real * real + imaginary * imaginary);
		}

		/**
		 * 給復(fù)數(shù)賦值
		 * 
		 * @param cpxX - 用于給復(fù)數(shù)賦值的源復(fù)數(shù)
		 * @return Complex型,與cpxX相等的復(fù)數(shù)
		 */
		public Complex SetValue(Complex cpxX)
		{
			real = cpxX.real;
			imaginary = cpxX.imaginary;

			return this;
		}

		/**
		 * 實(shí)現(xiàn)復(fù)數(shù)的加法
		 * 
		 * @param cpxX - 與指定復(fù)數(shù)相加的復(fù)數(shù)
		 * @return Complex型,指定復(fù)數(shù)與cpxX相加之和
		 */
		public Complex Add(Complex cpxX)
		{
			double x = real + cpxX.real;
			double y = imaginary + cpxX.imaginary;

			return new Complex(x, y);
		}

		/**
		 * 實(shí)現(xiàn)復(fù)數(shù)的減法
		 * 
		 * @param cpxX - 與指定復(fù)數(shù)相減的復(fù)數(shù)
		 * @return Complex型,指定復(fù)數(shù)減去cpxX之差
		 */
		public Complex Subtract(Complex cpxX)
		{
			double x = real - cpxX.real;
			double y = imaginary - cpxX.imaginary;

			return new Complex(x, y);
		}

		/**
		 * 實(shí)現(xiàn)復(fù)數(shù)的乘法
		 * 
		 * @param cpxX - 與指定復(fù)數(shù)相乘的復(fù)數(shù)
		 * @return Complex型,指定復(fù)數(shù)與cpxX相乘之積
		 */
		public Complex Multiply(Complex cpxX)
		{
			double x = real * cpxX.real - imaginary * cpxX.imaginary;
			double y = real * cpxX.imaginary + imaginary * cpxX.real;

			return new Complex(x, y);
		}

		/**
		 * 實(shí)現(xiàn)復(fù)數(shù)的除法
		 * 
		 * @param cpxX - 與指定復(fù)數(shù)相除的復(fù)數(shù)
		 * @return Complex型,指定復(fù)數(shù)除與cpxX之商
		 */
		public Complex Divide(Complex cpxX)
		{
			double e, f, x, y;
	    
			if (Math.Abs(cpxX.real) >= Math.Abs(cpxX.imaginary))
			{
				e = cpxX.imaginary / cpxX.real;
				f = cpxX.real + e * cpxX.imaginary;
	        
				x = (real + imaginary * e) / f;
				y = (imaginary - real * e) / f;
			}
			else
			{
				e = cpxX.real / cpxX.imaginary;
				f = cpxX.imaginary + e * cpxX.real;
	        
				x = (real * e + imaginary) / f;
				y = (imaginary * e - real) / f;
			}

			return new Complex(x, y);
		}

		/**
		 * 計(jì)算復(fù)數(shù)的模
		 * 
		 * @return double型,指定復(fù)數(shù)的模
		 */
		public double Abs()
		{
			// 求取實(shí)部和虛部的絕對(duì)值
			double x = Math.Abs(real);
			double y = Math.Abs(imaginary);

			if (real == 0)
				return y;
			if (imaginary == 0)
				return x;
	    
	    
			// 計(jì)算模
			if (x > y)
				return (x * Math.Sqrt(1 + (y / x) * (y / x)));
	    
			return (y * Math.Sqrt(1 + (x / y) * (x / y)));
		}

		/**
		 * 計(jì)算復(fù)數(shù)的根
		 * 
		 * @param n - 待求根的根次
		 * @param cpxR - Complex型數(shù)組,長(zhǎng)度為n,返回復(fù)數(shù)的所有根
		 */
		public void Root(int n, Complex[] cpxR)
		{
			if (n<1) 
				return;
	    
			double q = Math.Atan2(imaginary, real);
			double r = Math.Sqrt(real*real + imaginary*imaginary);
			if (r != 0)
			{ 
				r = (1.0/n)*Math.Log(r);
				r = Math.Exp(r);
			}

			for (int k=0; k<=n-1; k++)
			{ 
				double t = (2.0*k*3.1415926+q)/n;
				cpxR[k] = new Complex(r*Math.Cos(t), r*Math.Sin(t));
			}
		}

		/**
		 * 計(jì)算復(fù)數(shù)的實(shí)冪指數(shù)
		 * 
		 * @param dblW - 待求實(shí)冪指數(shù)的冪次
		 * @return Complex型,復(fù)數(shù)的實(shí)冪指數(shù)值
		 */
		public Complex Pow(double dblW)
		{
			// 常量
			const double PI = 3.14159265358979;

			// 局部變量
			double r, t;
	    
			// 特殊值處理
			if ((real == 0) && (imaginary == 0))
				return new Complex(0, 0);
	    
			// 冪運(yùn)算公式中的三角函數(shù)運(yùn)算
			if (real == 0)
			{
				if (imaginary > 0)
					t = 1.5707963268;
				else
					t = -1.5707963268;
			}
			else
			{
				if (real > 0)
					t = Math.Atan2(imaginary, real);
				else
				{
					if (imaginary >= 0)
						t = Math.Atan2(imaginary, real) + PI;
					else
						t = Math.Atan2(imaginary, real) - PI;
				}
			}
	    
			// 模的冪
			r = Math.Exp(dblW * Math.Log(Math.Sqrt(real * real + imaginary * imaginary)));
	    
			// 復(fù)數(shù)的實(shí)冪指數(shù)
			return new Complex(r * Math.Cos(dblW * t), r * Math.Sin(dblW * t));
		}

		/**
		 * 計(jì)算復(fù)數(shù)的復(fù)冪指數(shù)
		 * 
		 * @param cpxW - 待求復(fù)冪指數(shù)的冪次
		 * @param n - 控制參數(shù),默認(rèn)值為0。當(dāng)n=0時(shí),求得的結(jié)果為復(fù)冪指數(shù)的主值
		 * @return Complex型,復(fù)數(shù)的復(fù)冪指數(shù)值
		 */
		public Complex Pow(Complex cpxW, int n)
		{
			// 常量
			const double PI = 3.14159265358979;
			// 局部變量
			double r, s, u, v;
	    
			// 特殊值處理
			if (real == 0)
			{
				if (imaginary == 0)
					return new Complex(0, 0);
	            
				s = 1.5707963268 * (Math.Abs(imaginary) / imaginary + 4 * n);
			}
			else
			{
				s = 2 * PI * n + Math.Atan2(imaginary, real);
	        
				if (real < 0)
				{
					if (imaginary > 0)
						s = s + PI;
					else
						s = s - PI;
				}
			}
	    
			// 求冪運(yùn)算公式
			r = 0.5 * Math.Log(real * real + imaginary * imaginary);
			v = cpxW.real * r + cpxW.imaginary * s;
			u = Math.Exp(cpxW.real * r - cpxW.imaginary * s);

			return new Complex(u * Math.Cos(v), u * Math.Sin(v));
		}

		/**
		 * 計(jì)算復(fù)數(shù)的自然對(duì)數(shù)
		 * 
		 * @return Complex型,復(fù)數(shù)的自然對(duì)數(shù)值
		 */
		public Complex Log()
		{
			double p = Math.Log(Math.Sqrt(real*real + imaginary*imaginary));
			return new Complex(p, Math.Atan2(imaginary, real));
		}

		/**
		 * 計(jì)算復(fù)數(shù)的正弦
		 * 
		 * @return Complex型,復(fù)數(shù)的正弦值
		 */
		public Complex Sin()
		{
			int i;
			double x, y, y1, br, b1, b2;
			double[] c = new double[6];
	    
			// 切比雪夫公式的常數(shù)系數(shù)
			c[0] = 1.13031820798497;
			c[1] = 0.04433684984866;
			c[2] = 0.00054292631191;
			c[3] = 0.00000319843646;
			c[4] = 0.00000001103607;
			c[5] = 0.00000000002498;
	    
			y1 = Math.Exp(imaginary);
			x = 0.5 * (y1 + 1 / y1);
			br = 0;
			if (Math.Abs(imaginary) >= 1)
				y = 0.5 * (y1 - 1 / y1);
			else
			{
				b1 = 0;
				b2 = 0;
				y1 = 2 * (2 * imaginary * imaginary - 1);
				for (i = 5; i >=0; --i)
				{
					br = y1 * b1 - b2 - c[i];
					if (i != 0)
					{
						b2 = b1;
						b1 = br;
					}
				}
	        
				y = imaginary * (br - b1);
			}
	    
			// 組合計(jì)算結(jié)果
			x = x * Math.Sin(real);
			y = y * Math.Cos(real);

			return new Complex(x, y);
		}

		/**
		 * 計(jì)算復(fù)數(shù)的余弦
		 * 
		 * @return Complex型,復(fù)數(shù)的余弦值
		 */
		public Complex Cos()
		{
			int i;
			double x, y, y1, br, b1, b2;
			double[] c = new double[6];
	    
			// 切比雪夫公式的常數(shù)系數(shù)
			c[0] = 1.13031820798497;
			c[1] = 0.04433684984866;
			c[2] = 0.00054292631191;
			c[3] = 0.00000319843646;
			c[4] = 0.00000001103607;
			c[5] = 0.00000000002498;
	    
			y1 = Math.Exp(imaginary);
			x = 0.5 * (y1 + 1 / y1);
			br = 0;
			if (Math.Abs(imaginary) >= 1)
				y = 0.5 * (y1 - 1 / y1);
			else
			{
				b1 = 0;
				b2 = 0;
				y1 = 2 * (2 * imaginary * imaginary - 1);
				for (i=5 ; i>=0; --i)
				{
					br = y1 * b1 - b2 - c[i];
					if (i != 0)
					{
						b2 = b1;
						b1 = br;
					}
				}
	        
				y = imaginary * (br - b1);
			}
	    
			// 組合計(jì)算結(jié)果
			x = x * Math.Cos(real);
			y = -y * Math.Sin(real);

			return new Complex(x, y);
		}

		/**
		 * 計(jì)算復(fù)數(shù)的正切
		 * 
		 * @return Complex型,復(fù)數(shù)的正切值
		 */
		public Complex Tan()
		{
			return Sin().Divide(Cos());
		}
	}
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久亚洲综合| 精品久久久久一区| 日本一二三四高清不卡| 首页国产欧美日韩丝袜| 成+人+亚洲+综合天堂| 欧美tk—视频vk| 午夜不卡av免费| 一本到高清视频免费精品| 国产欧美一区视频| 精品一区二区免费看| 欧美区在线观看| 一区二区三区四区在线| bt欧美亚洲午夜电影天堂| 日韩精品一区二区三区中文精品| 亚洲图片自拍偷拍| 色综合色狠狠综合色| 国产精品天美传媒| 国产一区二区三区免费观看| 欧美一级艳片视频免费观看| 亚洲一区影音先锋| 色欧美片视频在线观看在线视频| 国产欧美一区二区精品久导航 | 一区二区三区四区国产精品| 国产福利一区二区三区在线视频| 日韩三级免费观看| 免费观看日韩av| 欧美一区二区三区免费视频| 亚洲成人动漫在线免费观看| 色综合久久综合网欧美综合网 | 国产日韩欧美a| 国产一区在线精品| 久久新电视剧免费观看| 久久精品国产精品亚洲红杏| 欧美一区二区三区影视| 日本不卡一区二区三区高清视频| 欧美日韩你懂的| 性久久久久久久久久久久| 欧美午夜电影网| 午夜伦理一区二区| 91精品国产一区二区人妖| 喷水一区二区三区| 日韩一区二区三区视频在线观看| 免费成人在线视频观看| 精品少妇一区二区三区免费观看 | 亚洲视频在线观看三级| 一本一道综合狠狠老| 亚洲男同性视频| 91久久精品国产91性色tv | 久久先锋资源网| 国产精品一级在线| 中文字幕精品一区二区三区精品| 成人免费福利片| 亚洲精品欧美专区| 欧美日韩精品是欧美日韩精品| 视频一区二区中文字幕| 欧美mv和日韩mv的网站| 国产成人久久精品77777最新版本| 欧美激情在线观看视频免费| 99久久免费国产| 亚洲国产美女搞黄色| 91麻豆精品国产91久久久资源速度 | 国产精品情趣视频| 色av成人天堂桃色av| 丝袜国产日韩另类美女| 欧美精品一区在线观看| 成人美女视频在线观看| 亚洲精品中文字幕在线观看| 欧美日韩免费一区二区三区 | 亚洲国产aⅴ成人精品无吗| 在线成人免费观看| 国产一区在线看| 亚洲欧美日韩国产手机在线| 欧美丰满少妇xxxxx高潮对白| 久久电影网站中文字幕| 一区二区中文视频| 欧美日韩高清一区| 国产毛片精品一区| 一区二区国产盗摄色噜噜| 日韩精品中文字幕在线一区| 成人爱爱电影网址| 丝袜诱惑制服诱惑色一区在线观看| 久久中文字幕电影| 色乱码一区二区三区88 | 亚洲天堂精品视频| 制服.丝袜.亚洲.中文.综合| 国产iv一区二区三区| 一个色综合av| 欧美精品一区二区蜜臀亚洲| 91麻豆精东视频| 老司机精品视频一区二区三区| 欧美高清在线视频| 777午夜精品免费视频| 国产成人免费视频网站高清观看视频| 亚洲欧美另类小说视频| 欧美精品一区视频| 欧美主播一区二区三区| 国产精品一二三四五| 亚洲一区二区三区爽爽爽爽爽| 精品国产乱码久久久久久久| 91国产视频在线观看| 国产一区二区视频在线播放| 亚洲国产精品天堂| 国产精品女主播av| 日韩精品一区二区三区老鸭窝 | 免费观看在线色综合| 国产精品九色蝌蚪自拍| 欧美xxxxx牲另类人与| 色综合天天综合狠狠| 国产在线精品免费| 日韩精品91亚洲二区在线观看| 亚洲欧美一区二区视频| 久久综合色鬼综合色| 欧美伦理电影网| 一本一本久久a久久精品综合麻豆| 国产一区二区电影| 蜜臀va亚洲va欧美va天堂| 亚洲综合丝袜美腿| 国产精品理论片| 久久综合九色综合久久久精品综合| 欧美视频在线一区二区三区| 国产·精品毛片| 激情另类小说区图片区视频区| 亚洲国产精品精华液网站| 日韩毛片精品高清免费| 日本一区二区不卡视频| 久久久精品日韩欧美| 欧美一区二区三区精品| 欧美美女黄视频| 欧美亚洲尤物久久| 91久久精品网| 91免费看视频| av在线不卡免费看| 国产.精品.日韩.另类.中文.在线.播放| 久久狠狠亚洲综合| 免费成人深夜小野草| 日韩高清不卡一区| 日韩中文字幕麻豆| 婷婷国产v国产偷v亚洲高清| 伊人性伊人情综合网| 亚洲欧美综合网| 国产精品麻豆网站| 国产精品视频麻豆| 欧美激情一区在线观看| 国产欧美日韩激情| 日本一区二区动态图| 欧美极品aⅴ影院| 国产精品天美传媒| 亚洲欧美综合色| 亚洲日本韩国一区| 一区二区三区不卡视频| 亚洲图片自拍偷拍| 午夜精品久久久久久久久久久 | 国产午夜精品理论片a级大结局| 欧美mv日韩mv| 久久久久久97三级| 久久久久久久综合| 欧美激情在线一区二区三区| 中文字幕欧美激情| 国产精品短视频| 亚洲欧洲成人av每日更新| 亚洲蜜臀av乱码久久精品蜜桃| 专区另类欧美日韩| 亚洲一区在线看| 日韩va亚洲va欧美va久久| 日本视频一区二区三区| 精品写真视频在线观看| 国产成人在线视频免费播放| 丁香六月综合激情| av亚洲产国偷v产偷v自拍| 一本一道久久a久久精品| 91福利资源站| 欧美一区二区三区视频免费播放 | 美国十次综合导航| 国产一区二区三区免费在线观看| 国产乱码字幕精品高清av| 成人午夜免费电影| 在线观看中文字幕不卡| 欧美乱熟臀69xxxxxx| 精品国产一二三| 中文子幕无线码一区tr| 亚洲精品国产a| 奇米色一区二区| 国产精品一区二区无线| 不卡的电视剧免费网站有什么| 成人av免费在线| 欧美体内she精高潮| 日韩一区二区三区电影| 亚洲国产成人私人影院tom| 亚洲精品福利视频网站| 蜜臀av一级做a爰片久久| 国产不卡视频一区二区三区| 一本色道a无线码一区v| 这里只有精品99re| 国产午夜精品美女毛片视频| 亚洲九九爱视频| 久久99精品一区二区三区| 91在线云播放| 日韩一区二区三区在线视频| 欧美激情一二三区| 婷婷夜色潮精品综合在线|