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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? c#版遺傳算法解tsp問題.txt

?? C#版遺傳算法解TSP問題
?? TXT
?? 第 1 頁 / 共 3 頁
字號:
				for(int i=0;i<nn;i++)
					for(int j=0;j<nn;j++)
					{
						double a1,a2;
						a1=Distance[i,j];
						a2=Distance[i,k]+Distance[k,j];
						if(a1>a2)
						{
							Distance[i,j]=a2;
							Path[i,j]=Path[k,j];
						}
					}
		}
	}
	class LSMat
	{
		//從數據文件中獲取二維矩陣
		public static double[,] LoadDoubleDataFile(string DataFileName)
		{
			FileStream fs;  //文件指針
			fs=File.Open(DataFileName,FileMode.Open,FileAccess.Read); //以只讀方式打開數據
文件
			StreamReader r=new StreamReader(fs);//創建讀入流
			string str;
			str=r.ReadLine();  //讀入數據文件的第一行
			double []vv;  //定義一維數組
			vv=StringToDouble(str,2); //把特定字符串轉換為一維數組
			double [,]Mat;
			switch((int)vv[0])
			{
				case 1: Mat=LoadDoubleDataFileFormat1(r);break;
				case 2: Mat=LoadDoubleDataFileFormat2(r);break;
				default:Mat=new double[0,0];break;
			}
			r.Close();
			fs.Close();  //關閉數據文件指針
			return Mat;
		}
		//獲得文件格式為1的雙精度型數據
		private static double [,] LoadDoubleDataFileFormat1(StreamReader r)
		{
			string str;
			str=r.ReadLine();  //讀入數據文件的第二行
			int seek=str.IndexOf("matrix");
			str=str.Remove(seek,6);
			double []rowcolv;  //定義一維數組
			rowcolv=StringToDouble(str,2); //把特定字符串轉換為一維數組
			double [,]Mat;   //定義二維數組
			Mat=new double[(int)rowcolv[0],(int)rowcolv[1]]; //創建二維數組Mat
			str=r.ReadLine(); //讀入數據文件的第三行,在此沒用,原因是照顧到別的語言的兼容
			while(r.Peek()>-1)    //當到達數據文件尾時結束循環
			{
				str=r.ReadLine();  //讀入數據文件當前行字符串
				rowcolv=StringToDouble(str,Mat.GetLength(1));//把特定字符串轉換為一維數組
				Mat[(int)rowcolv[0]-1,(int)rowcolv[1]-1]=rowcolv[2]; //為二維數組賦值
			}
			return Mat;  //返回二維數組
		}
		private static double [,] LoadDoubleDataFileFormat2(StreamReader r)
		{
			string str;
			str=r.ReadLine();  //讀入數據文件的第二行
			int seek=str.IndexOf("matrix");
			str=str.Remove(seek,6);
			double []rowcolv;  //定義一維數組
			rowcolv=StringToDouble(str,2); //把特定字符串轉換為一維數組
			double [,]Mat;   //定義二維數組
			Mat=new double[(int)rowcolv[0],(int)rowcolv[1]]; //創建二維數組Mat
			double[] rowvalue=new double[Mat.GetLength(1)];
			int rowi=0;
			while(r.Peek()>-1)    //當到達數據文件尾時結束循環
			{
				str=r.ReadLine();  //讀入數據文件當前行字符串
				int seekm=str.IndexOf(":");
				str=str.Remove(0,seekm+1);
				rowvalue=StringToDouble(str,Mat.GetLength(1));//把特定字符串轉換為一維數組
				for(int i=0;i<Mat.GetLength(1);i++)
					Mat[rowi,i]=rowvalue[i];
				rowi++;
			}
			return Mat;  //返回二維數組
		}
		//從數據文件中獲取二維矩陣
		public static int[,] LoadIntleDataFile(string DataFileName)
		{
			FileStream fs;  //文件指針
			fs=File.Open(DataFileName,FileMode.Open,FileAccess.Read); //以只讀方式打開數據
文件
			StreamReader r=new StreamReader(fs);//創建讀入流
			string str;
			str=r.ReadLine();  //讀入數據文件的第一行
			int []vv;  //定義一維數組
			vv=StringToInt(str,2); //把特定字符串轉換為一維數組
			int [,]Mat;
			switch(vv[0])
			{
				case 1: Mat=LoadIntleDataFileFormat1(r);break;
				case 2: Mat=LoadIntleDataFileFormat2(r);break;
				default:Mat=new int[0,0];break;
			}
			r.Close();
			fs.Close();  //關閉數據文件指針
			return Mat;  //返回二維數組
		}
		private static int[,] LoadIntleDataFileFormat1(StreamReader r)
		{
			string str;
			str=r.ReadLine();  //讀入數據文件的第二行
			int seek=str.IndexOf("matrix");
			Console.WriteLine("{0}",seek);
			str=str.Remove(seek,6);
			int []rowcolv;  //定義一維數組
			rowcolv=StringToInt(str,1); //把特定字符串轉換為一維數組
			int [,]Mat;   //定義二維數組
			Mat=new int[rowcolv[0],rowcolv[1]]; //創建二維數組Mat
			str=r.ReadLine(); //讀入數據文件的第三行,在此沒用,原因是照顧到別的語言的兼容
			while(r.Peek()>-1)    //當到達數據文件尾時結束循環
			{
				str=r.ReadLine();  //讀入數據文件當前行字符串
				rowcolv=StringToInt(str,Mat.GetLength(1));//把特定字符串轉換為一維數組
				Mat[rowcolv[0]-1,rowcolv[1]-1]=rowcolv[2]; //為二維數組賦值
			}
			return Mat;  //返回二維數組
		}
		private static int[,] LoadIntleDataFileFormat2(StreamReader r)
		{
			string str;
			str=r.ReadLine();  //讀入數據文件的第二行
			int seek=str.IndexOf("matrix");
			str=str.Remove(seek,6);
			double []rowcolv;  //定義一維數組
			rowcolv=StringToDouble(str,2); //把特定字符串轉換為一維數組
			int [,]Mat;   //定義二維數組
			Mat=new int[(int)rowcolv[0],(int)rowcolv[1]]; //創建二維數組Mat
			int[] rowvalue=new int[Mat.GetLength(1)];
			int rowi=0;
			while(r.Peek()>-1)    //當到達數據文件尾時結束循環
			{
				str=r.ReadLine();  //讀入數據文件當前行字符串
				int seekm=str.IndexOf(":");
				str=str.Remove(0,seekm+1);
				rowvalue=StringToInt(str,Mat.GetLength(1));//把特定字符串轉換為一維數組
				for(int i=0;i<Mat.GetLength(1);i++)
					Mat[rowi,i]=rowvalue[i];
				rowi++;
			}
			return Mat;  //返回二維數組
		}
		//把雙精度型數據矩陣存入指定文件中
		public static void SaveDataFile(string DataFileName,double [,]Mat,int DataFile
Format)
		{
			FileStream fs;//文件指針
			fs=File.Open(DataFileName,FileMode.Create,FileAccess.Write);//創建并打開文件指
			StreamWriter w=new StreamWriter(fs);//創建寫入文件流
			switch(DataFileFormat)
			{
				case 1: SaveDataFileFormat1(w,Mat); break;
				case 2: SaveDataFileFormat2(w,Mat); break;
				default:break;
			}
			w.Close();
			fs.Close();
		}
		//把雙精度型數據矩陣以數據格式1存入文件流指向的文件中
		private static void SaveDataFileFormat1(StreamWriter w,double [,]Mat)
		{
			w.WriteLine("1");
			string str;//定義字符串
			string str2=" ";//創建一個空格字符串
			str="matrix "+Mat.GetLength(0).ToString()+str2+Mat.GetLength(1);// 行和列字符
			w.WriteLine(str);//寫入該字符串
			//計算非零元素的個數
			int unzeronumber=0;
			for(int i=0;i<Mat.GetLength(0);i++)
				for(int j=0;j<Mat.GetLength(1);j++)
				{
					if(Mat[i,j]!=0.0) unzeronumber++;
				}
			w.WriteLine("{0}",unzeronumber.ToString());
			//把每個元素寫入文件
			for(int i=Mat.GetLowerBound(0);i<=Mat.GetUpperBound(0);i++)
				for(int j=Mat.GetLowerBound(1);j<=Mat.GetUpperBound(1);j++)
				{
					str=(i+1).ToString()+str2+(j+1).ToString()+str2+Mat[i,j].ToString();
					w.WriteLine(str);
				}
		}
		//把雙精度型數據矩陣以數據格式2存入文件流指向的文件中
		private static void SaveDataFileFormat2(StreamWriter w,double [,]Mat)
		{
			w.WriteLine("2");
			string str;//定義字符串
			string str2=" ";//創建一個空格字符串
			str="matrix "+Mat.GetLength(0).ToString()+str2+Mat.GetLength(1);// 行和列字符
			w.WriteLine(str);//寫入該字符串
			//把每個元素寫入文件
			for(int i=Mat.GetLowerBound(0);i<=Mat.GetUpperBound(0);i++)
			{
				str=i.ToString()+":  ";
				w.Write(str);
				for(int j=Mat.GetLowerBound(1);j<=Mat.GetUpperBound(1);j++)
				{
					str=Mat[i,j].ToString()+"  ";
					w.Write(str);
				}
				w.Write("\n");
			}
		}
	    //把整型數據矩陣存入指定文件中
		public static void SaveDataFile(string DataFileName,int [,]Mat,int DataFileFor
mat)
		{
			FileStream fs;//文件指針
			fs=File.Open(DataFileName,FileMode.Create,FileAccess.Write);//創建并打開文件指
			StreamWriter w=new StreamWriter(fs);//創建寫入文件流
			switch(DataFileFormat)
			{
				case 1: SaveDataFileFormat1(w,Mat); break;
				case 2: SaveDataFileFormat2(w,Mat); break;
				default:break;
			}
			w.Close();
			fs.Close();
		}
		//把雙精度型數據矩陣以數據格式1存入文件流指向的文件中
		private static void SaveDataFileFormat1(StreamWriter w,int [,]Mat)
		{
			w.WriteLine("1");
			string str;//定義字符串
			string str2=" ";//創建一個空格字符串
			str="matrix "+Mat.GetLength(0).ToString()+str2+Mat.GetLength(1);// 行和列字符
			w.WriteLine(str);//寫入該字符串
			//計算非零元素的個數
			int unzeronumber=0;
			for(int i=0;i<Mat.GetLength(0);i++)
				for(int j=0;j<Mat.GetLength(1);j++)
				{
					if(Mat[i,j]!=0.0) unzeronumber++;
				}
			w.WriteLine("{0}",unzeronumber.ToString());
			//把每個元素寫入文件
			for(int i=Mat.GetLowerBound(0);i<=Mat.GetUpperBound(0);i++)
				for(int j=Mat.GetLowerBound(1);j<=Mat.GetUpperBound(1);j++)
				{
					str=(i+1).ToString()+str2+(j+1).ToString()+str2+Mat[i,j].ToString();
					w.WriteLine(str);
				}
		}
		//把雙精度型數據矩陣以數據格式2存入文件流指向的文件中
		private static void SaveDataFileFormat2(StreamWriter w,int [,]Mat)
		{
			w.WriteLine("2");
			string str;//定義字符串
			string str2=" ";//創建一個空格字符串
			str="matrix "+Mat.GetLength(0).ToString()+str2+Mat.GetLength(1);// 行和列字符
			w.WriteLine(str);//寫入該字符串
			//把每個元素寫入文件
			for(int i=Mat.GetLowerBound(0);i<=Mat.GetUpperBound(0);i++)
			{
				str=i.ToString()+":  ";
				w.Write(str);
				for(int j=Mat.GetLowerBound(1);j<=Mat.GetUpperBound(1);j++)
				{
					str=Mat[i,j].ToString()+"  ";
					w.Write(str);
				}
				w.Write("\n");
			}
		}
		//把只含有空格符,小數點和"0-9"數字符的字符串轉換為一個一維雙精度型數組
		private static double[] StringToDouble(string str,int veclength)
		{
			double []Mat; //定義一維數組
			Mat=new Double[veclength];  //創建一維數組
			string str1=null;   //創建空字符串
			int index1=0;  //創建一個整型數并賦0
			if(str[0]==' ')  //如果字符串的首字符為空
			{
				//本循環目的是找到第一個不為"空格"的字符的索引,并把它賦給index1
				for(int i=1;i<str.Length;i++) 
				{
					if(str[i]!=' ')
					{
						index1=i;
						break;
					}
				}
				
			}
			//下面循環的目的是以空格為分界符找出所有子字符串,同時把這些子字符串轉換成雙精
度浮點數
			int k=0;//標志著目前的子字符串的序號,從0開始記數
			for(int i=index1;i<str.Length;i++) //從第一個非"空格"字符開始
			{
				if(str[i]==' '||i>=(str.Length-1)) //如果第i個字符為"空格"或者已到字符串結尾
				{
					//如果已到字符串結尾并且該字符不為"空格",則把最后的字符加到最后的子字符串中
					if(i>=(str.Length-1)&&(str[i]!=' ')) 
						str1+=str[i];
					Mat[k]=double.Parse(str1);//轉換字符串為雙精度浮點數
					if(i<(str.Length-1))  //如果未到字符串結尾
					{
						k++;  //記數到下一個子字符串
						str1=str1.Remove(0,str1.Length); //清空子字符串
						//下面循環的目的是從當前子字符串結尾的"空格"開始直至找到下一個非"空格"字符
的索引
						//或者到字符串結尾(我們知道兩數據間可以有多個空格)
						while(true)
						{
							if(str[i+1]!=' ') break;
							i++;
							if(i>=(str.Length-1)) break;
						}
				    }
				}
				else
				{
					str1+=str[i];//繼續加入非"空格"字符到當前子字符串
				}
			}
			return Mat; //返回字符串對應的一維數組
		}
		//把只含有空格符和"0-9"數字的字符串轉換為一個一維整型數組
		private static int[] StringToInt(string str,int veclength)
		{
			int []Mat; //定義一維數組
			Mat=new int[veclength];  //創建一維數組
			string str1=null;   //創建空字符串
			int index1=0;  //創建一個整型數并賦0
			if(str[0]==' ')  //如果字符串的首字符為空
			{
				//本循環目的是找到第一個不為"空格"的字符的索引,并把它賦給index1
				for(int i=1;i<str.Length;i++) 
				{
					if(str[i]!=' ')
					{
						index1=i;
						break;
					}
				}
				
			}
			//下面循環的目的是以空格為分界符找出所有子字符串,同時把這些子字符串轉換成雙精
度浮點數
			int k=0;//標志著目前的子字符串的序號,從0開始記數
			for(int i=index1;i<str.Length;i++) //從第一個非"空格"字符開始
			{
				if(str[i]==' '||i>=(str.Length-1)) //如果第i個字符為"空格"或者已到字符串結尾
				{
					//如果已到字符串結尾并且該字符不為"空格",則把最后的字符加到最后的子字符串中
					if(i>=(str.Length-1)&&(str[i]!=' ')) 
						str1+=str[i];
					Mat[k]=int.Parse(str1);//轉換字符串為雙精度浮點數
					if(i<(str.Length-1))  //如果未到字符串結尾
					{
						k++;  //記數到下一個子字符串
						str1=str1.Remove(0,str1.Length); //清空子字符串
						//下面循環的目的是從當前子字符串結尾的"空格"開始直至找到下一個非"空格"字符
的索引
						//或者到字符串結尾(我們知道兩數據間可以有多個空格)
						while(true)
						{
							if(str[i+1]!=' ') break;
							i++;
							if(i>=(str.Length-1)) break;
						}
					}
				}
				else
				{
					str1+=str[i];//繼續加入非"空格"字符到當前子字符串
				}
			}
			return Mat; //返回字符串對應的一維數組
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区蜜桃网| 91成人免费在线视频| 99久久亚洲一区二区三区青草| 91久久免费观看| 99re热这里只有精品视频| 国产一区二区免费视频| 久久色在线视频| 亚洲国产日韩精品| 国模无码大尺度一区二区三区 | 日韩欧美激情一区| 亚洲免费av高清| 国产毛片精品视频| 欧美日韩亚洲另类| 美女脱光内衣内裤视频久久影院| 免费在线观看一区二区三区| 成人永久免费视频| 欧美一区二区网站| 久久成人羞羞网站| 欧美日韩精品免费观看视频 | 亚洲国产成人高清精品| 成人一区二区视频| 91精品黄色片免费大全| 国产一区二区中文字幕| 久久精品国产亚洲一区二区三区| 色综合久久久久久久久| 欧美a一区二区| 国产精品久久夜| 成人激情动漫在线观看| 精品少妇一区二区三区| 国产高清精品网站| 欧美日韩成人一区二区| 亚洲免费在线看| 国产另类ts人妖一区二区| 亚洲美女屁股眼交3| 51精品国自产在线| 一区二区欧美精品| 婷婷丁香激情综合| 成人久久视频在线观看| 亚洲图片欧美色图| 精品欧美一区二区久久| 日韩成人dvd| 欧美自拍偷拍午夜视频| 亚洲人成7777| 日韩美女在线视频| 欧美美女bb生活片| 一本色道综合亚洲| 国产成人免费xxxxxxxx| 欧美色综合影院| 欧美精品一区二区三区高清aⅴ| 欧美日韩免费不卡视频一区二区三区| 99麻豆久久久国产精品免费| 一区二区三区四区激情| 国产精品久久久久久福利一牛影视| 精品奇米国产一区二区三区| 国产在线国偷精品产拍免费yy| 99久久久国产精品免费蜜臀| 国产成人免费视频精品含羞草妖精| 国产主播一区二区三区| 看片的网站亚洲| 日本不卡一二三| 日精品一区二区三区| 高潮精品一区videoshd| 亚洲一区视频在线| 欧美r级电影在线观看| 综合欧美亚洲日本| 欧美美女激情18p| 777a∨成人精品桃花网| 欧美一区二区免费视频| 欧美一二三区在线观看| 一区二区在线观看视频| 亚洲成av人在线观看| 日韩欧美成人午夜| 亚洲成人一区在线| xnxx国产精品| 国产亚洲短视频| 麻豆中文一区二区| 亚洲蜜臀av乱码久久精品蜜桃| 国产麻豆午夜三级精品| 国模冰冰炮一区二区| 国产在线视频精品一区| 日韩一区二区三区高清免费看看| 99久久精品情趣| 91影视在线播放| 国产精品久久久久久福利一牛影视 | 国产精品视频免费| 国产日韩精品视频一区| 韩国av一区二区| 欧美一区二区三区四区高清| 欧美电视剧在线看免费| 三级不卡在线观看| 麻豆国产精品777777在线| 国产在线观看一区二区| 日韩欧美成人午夜| 国产精品私房写真福利视频| 国产综合色产在线精品| 成人激情av网| 亚洲欧洲日本在线| 99热精品一区二区| 国产精品短视频| 成人av资源在线| 中文字幕一区二区不卡| 91小视频免费观看| 亚洲视频一二区| 色94色欧美sute亚洲线路一ni| 亚洲欧洲精品一区二区精品久久久| www.亚洲精品| 一区二区三区**美女毛片| 色综合久久99| 亚洲国产日韩精品| 欧美一区二区三区四区视频| 麻豆精品在线播放| 久久久噜噜噜久久中文字幕色伊伊| 国产精品一区二区在线播放 | 国产激情精品久久久第一区二区| 精品伦理精品一区| 国产精品1024| 中文字幕一区二区三区不卡在线| 91欧美激情一区二区三区成人| 夜夜嗨av一区二区三区中文字幕| 欧美日韩国产乱码电影| 蜜臂av日日欢夜夜爽一区| 久久夜色精品一区| 风间由美一区二区三区在线观看| √…a在线天堂一区| 色噜噜狠狠色综合欧洲selulu| 亚洲国产成人av| 欧美成人精精品一区二区频| 丰满白嫩尤物一区二区| 一级做a爱片久久| 在线播放中文字幕一区| 国产一区二区三区免费在线观看 | 国产成人av一区| 亚洲美女精品一区| 欧美一区二区性放荡片| 国产成人精品免费| 亚洲国产日韩一级| 26uuu色噜噜精品一区| 91麻豆文化传媒在线观看| 亚洲中国最大av网站| 欧美成人精品3d动漫h| www.亚洲色图.com| 日韩成人免费电影| 国产精品沙发午睡系列990531| 欧美影视一区二区三区| 极品尤物av久久免费看| 亚洲色图视频网站| 日韩一区二区免费电影| 成人99免费视频| 日韩高清不卡在线| 亚洲欧美综合网| 日韩欧美综合在线| 91蜜桃传媒精品久久久一区二区| 美国av一区二区| 亚洲乱码日产精品bd | 久久99精品久久久久久国产越南 | 亚洲综合清纯丝袜自拍| 久久蜜臀精品av| 欧美日韩久久一区| 国产成人综合视频| 日韩av一区二区三区四区| 中文字幕在线一区免费| 欧美电视剧免费观看| 在线视频一区二区三区| 国内精品写真在线观看| 婷婷国产在线综合| 亚洲色图19p| 欧美国产日产图区| 欧美电影精品一区二区| 欧美日韩一卡二卡| eeuss鲁片一区二区三区在线观看| 日本91福利区| 亚洲国产毛片aaaaa无费看| 国产精品久久久久久久久图文区 | 欧美日韩免费一区二区三区视频| 国产成人三级在线观看| 免费在线观看一区| 亚洲国产日韩一级| 亚洲精品国产一区二区精华液| 久久综合av免费| 欧美男人的天堂一二区| 色一区在线观看| 成人激情综合网站| 国产综合色产在线精品| 日本亚洲免费观看| 亚洲1区2区3区4区| 亚洲综合色丁香婷婷六月图片| 国产精品对白交换视频 | 国产99久久久精品| 狠狠色综合播放一区二区| 日日摸夜夜添夜夜添国产精品| 亚洲夂夂婷婷色拍ww47| 亚洲精品高清在线| 亚洲视频综合在线| 国产精品久久久久久久久免费相片 | 亚洲欧美另类久久久精品| 日本一区二区三区国色天香| 欧美tk—视频vk| 久久众筹精品私拍模特| 欧美成人a视频| 欧美大片在线观看|