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

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

?? main.cpp

?? c均值算法用vc實現。作為重要的算法
?? CPP
字號:
/********************************************************************
	FILE NAME: Main.cpp
*********************************************************************/
#include <iostream>
#include <math.h>
#include "Samples.h"		
#include "CSpecies.h"	

/*********************************************************************
			Sample Data (from Iris)
*********************************************************************/
double da[9][4]=
{
	//Samples for test1
	//from group1
	{5.1 , 3.5 , 1.4 , 0.2},	//1
	{4.9 , 3.0 , 1.4 , 0.2},	//2
	{5.0 , 3.3 , 1.4 , 0.2},	//50
	
	
	//from group2
	{7.0 , 3.2 , 4.7 , 1.4},    //51
	{6.4 , 3.2 , 4.5 , 1.5},    //52
	{5.7 , 2.8 , 4.1 , 1.3},    //100
	
	//from group3
	{6.3 , 3.3 , 6.0 , 2.5},    //101
	{5.8 , 2.7 , 5.1 , 1.9},    //102
	{5.9 , 3.0 , 5.1 , 1.8}     //150


	//Samples for test2
// 		//from group1
// 	{5.1 , 3.5 , 1.4 , 0.2},    //1
// 	{4.9 , 3.0 , 1.4 , 0.2},
// 	{4.7 , 3.2 , 1.3 , 0.2},
// 	{4.6 , 3.1 , 1.5 , 0.2},
// 	{5.0 , 3.6 , 1.4 , 0.2},
// 	{5.4 , 3.7 , 1.5 , 0.2},
// 	{4.6 , 3.4 , 1.4 , 0.3},
// 	{5.0 , 3.4 , 1.5 , 0.2},
// 	{4.4 , 2.9 , 1.4 , 0.2},
// 	{4.9 , 3.1 , 1.5 , 0.1},	
// 
// 	{5.4 , 3.7 , 1.5 , 0.2},	//11
// 	{4.8 , 3.4 , 1.6 , 0.2},
// 	{4.8 , 3.0 , 1.4 , 0.1},
// 	{4.3 , 3.0 , 1.1 , 0.1},
// 	{5.8 , 4.0 , 1.2 , 0.2},
// 	{5.7 , 4.4 , 1.5 , 0.4},
// 	{5.4 , 3.9 , 1.3 , 0.4},
// 	{5.1 , 3.5 , 1.4 , 0.3},
// 	{5.7 , 3.8 , 1.7 , 0.3},
// 	{5.1 , 3.8 , 1.5 , 0.3},
// 
// 	{5.4 , 3.4 , 1.7 , 0.2},	//21
// 	{5.1 , 3.7 , 1.5 , 0.4},
// 	{4.6 , 3.6 , 1.0 , 0.2},
// 	{5.1 , 3.3 , 1.7 , 0.5},
// 	{4.8 , 3.4 , 1.9 , 0.2},
// 	{5.0 , 3.0 , 1.6 , 0.2},
// 	{5.0 , 3.4 , 1.6 , 0.4},
// 	{5.2 , 3.5 , 1.5 , 0.2},
// 	{5.2 , 3.4 , 1.4 , 0.2},
// 	{4.7 , 5.2 , 1.6 , 0.2},
// 
// 	{4.8 , 3.1 , 1.6 , 0.2},	//31
// 	{5.4 , 3.4 , 1.5 , 0.4},
// 	{5.2 , 4.1 , 1.5 , 0.1},
// 	{5.5 , 4.2 , 1.4 , 0.2},
// 	{4.9 , 3.1 , 1.5 , 0.2},
// 	{5.0 , 3.2 , 1.2 , 0.2},
// 	{5.5 , 3.5 , 1.3 , 0.2},
// 	{4.9 , 3.6 , 1.4 , 0.1},
// 	{4.4 , 3.0 , 1.3 , 0.2},
// 	{5.1 , 3.4 , 1.5 , 0.2},
// 
// 	{5.0 , 3.5 , 1.3 , 0.3},	//41
// 	{4.5 , 2.3 , 1.3 , 0.3},
// 	{4.4 , 3.2 , 1.3 , 0.2},
// 	{5.0 , 3.5 , 1.6 , 0.6},
// 	{5.1 , 3.8 , 1.9 , 0.4},
// 	{4.8 , 3.0 , 1.4 , 0.3},
// 	{5.1 , 3.8 , 1.6 , 0.2},
// 	{4.6 , 3.2 , 1.4 , 0.2},
// 	{5.3 , 3.7 , 1.5 , 0.2},
// 	{5.0 , 3.3 , 1.4 , 0.2},
// 
// 	//from group2
// 	{7.0 , 3.2 , 4.7 , 1.4},	//51
// 	{6.4 , 3.2 , 4.5 , 1.5},
// 	{6.9 , 3.1 , 4.9 , 1.5},
// 	{5.5 , 2.3 , 4.0 , 1.3},
// 	{6.5 , 2.8 , 4.6 , 1.5},
// 	{5.7 , 2.8 , 4.5 , 1.3},
// 	{6.3 , 3.3 , 4.7 , 1.6},
// 	{4.9 , 2.4 , 3.3 , 1.0},
// 	{6.6 , 2.9 , 4.6 , 1.3},
// 	{5.2 , 2.7 , 3.9 , 1.4},
// 
// 	{5.0 , 2.0 , 3.5 , 1.0},	//61
// 	{5.9 , 3.0 , 4.2 , 1.5},
// 	{6.0 , 2.2 , 4.0 , 1.0},
// 	{6.1 , 2.9 , 4.7 , 1.4},
// 	{5.6 , 2.9 , 3.9 , 1.3},
// 	{6.7 , 3.1 , 4.4 , 1.4},
// 	{5.6 , 3.0 , 4.5 , 1.5},
// 	{5.8 , 2.7 , 4.1 , 1.0},
// 	{6.2 , 2.2 , 4.5 , 1.5},
// 	{5.6 , 2.5 , 2.9 , 1.1},
// 
// 	{5.9 , 3.2 , 4.8 , 1.8},	//71
// 	{6.1 , 2.8 , 4.0 , 1.3},
// 	{6.3 , 2.5 , 4.9 , 1.5},
// 	{6.1 , 2.8 , 4.7 , 1.2},
// 	{6.4 , 2.9 , 4.3 , 1.3},
// 	{6.6 , 3.0 , 4.4 , 1.4},
// 	{6.8 , 2.8 , 4.8 , 1.4},
// 	{6.7 , 3.0 , 5.0 , 1.7},
// 	{6.0 , 2.9 , 4.5 , 1.5},
// 	{5.7 , 2.6 , 3.5 , 1.0},
// 
// 	{5.5 ,2.4 ,3.8 ,1.1},		//81
// 	{5.5 ,2.4 ,3.7 ,1.0},
// 	{5.8 ,2.7 ,3.9 ,1.2},
// 	{6.0 ,2.7 ,5.1 ,1.6},
// 	{5.4 ,3.0 ,4.5 ,1.5},
// 	{6.0 ,3.4 ,4.5 ,1.6},
// 	{6.7 ,3.1 ,4.7 ,1.5},
// 	{6.3 ,2.3 ,4.4 ,1.3},
// 	{5.6 ,3.0 ,4.1 ,1.3},
// 	{5.5 ,2.5 ,4.0 ,1.3},
// 
// 	{5.5 ,2.6 ,4.4 ,1.2},	//91
// 	{6.1 ,3.0 ,4.6 ,1.4},
// 	{5.8 ,2.6 ,4.0 ,1.2},
// 	{5.0 ,2.3 ,3.3 ,1.0},
// 	{5.6 ,2.7 ,4.2 ,1.3},
// 	{5.7 ,3.0 ,4.2 ,1.2},
// 	{5.7 ,2.9 ,4.2 ,1.3},
// 	{6.2 ,2.9 ,4.3 ,1.3},
// 	{5.1 ,2.5 ,3.0 ,1.1},
// 	{5.7 ,2.8 ,4.1 ,1.3},
// 
// 	//from group3
// 	{6.3 ,3.3 ,6.0 ,2.5},	//101
// 	{5.8 ,2.7 ,5.1 ,1.9},
// 	{7.1 ,3.0 ,5.9 ,2.1},
// 	{6.3 ,2.9 ,5.6 ,1.8},
// 	{6.5 ,3.0 ,5.8 ,2.2},
// 	{7.6 ,3.0 ,6.6 ,2.1},
// 	{4.9 ,2.5 ,4.5 ,1.7},
// 	{7.3 ,2.9 ,6.3 ,1.8},
// 	{6.7 ,2.5 ,5.8 ,1.8},
// 	{7.2 ,3.6 ,6.1 ,2.5},
// 
// 	{6.5 ,3.2 ,5.1 ,2.0},	//111
// 	{6.4 ,2.7 ,5.3 ,1.9},
// 	{6.8 ,3.0 ,5.5 ,2.1},
// 	{5.7 ,2.5 ,5.0 ,2.0},
// 	{5.8 ,2.8 ,5.1 ,2.4},
// 	{6.4 ,3.2 ,5.3 ,2.3},
// 	{6.5 ,3.0 ,5.5 ,1.8},
// 	{7.7 ,3.8 ,6.7 ,2.2},
// 	{7.7 ,2.6 ,6.9 ,2.3},
// 	{6.0 ,2.2 ,5.0 ,1.5},
// 
// 	{6.9 ,3.2 ,5.7 ,2.3},	//121
// 	{5.6 ,2.8 ,4.9 ,2.0},
// 	{7.7 ,2.8 ,6.7 ,2.0},
// 	{6.3 ,2.7 ,4.9 ,1.8},
// 	{6.7 ,3.3 ,5.7 ,2.1},
// 	{7.2 ,3.2 ,6.0 ,1.8},
// 	{6.2 ,2.8 ,4.8 ,1.8},
// 	{6.1 ,3.0 ,4.9 ,1.8},
// 	{6.4 ,2.8 ,5.6 ,2.1},
// 	{7.2 ,3.0 ,5.8 ,1.6},
// 
// 	{7.4 ,2.8 ,6.1 ,1.9},	//131
// 	{7.9 ,3.8 ,6.4 ,2.0},
// 	{6.4 ,2.8 ,5.6 ,2.2},
// 	{6.3 ,2.8 ,5.1 ,1.5},
// 	{6.1 ,2.6 ,5.6 ,1.4},
// 	{7.7 ,3.0 ,6.1 ,2.3},
// 	{6.3 ,3.4 ,5.6 ,2.4},
// 	{6.4 ,3.1 ,5.5 ,1.8},
// 	{6.0 ,3.0 ,4.8 ,1.8},
// 	{6.9 ,3.1 ,5.4 ,2.1},
// 
// 	{6.7 ,3.1 ,5.6 ,2.4},	//141
// 	{6.9 ,3.1 ,5.1 ,2.3},
// 	{5.8 ,2.7 ,5.1 ,1.9},
// 	{6.8 ,3.2 ,5.9 ,2.3},
// 	{6.7 ,3.3 ,5.7 ,2.5},
// 	{6.7 ,3.0 ,5.2 ,2.3},
// 	{6.3 ,2.5 ,5.0 ,1.9},
// 	{6.5 ,3.0 ,5.2 ,2.0},
// 	{6.2 ,3.4 ,5.4 ,2.3},
// 	{5.9 ,3.0 ,5.1 ,1.8}
};

/*********************************************************************
              Global Variables Declaration
*********************************************************************/
int N;				   //the number of the samples
int K;				   //the number of the species

bool ischanged=0;	   //whether the center has been changed
int	 timescontr=0;	   //time control
char issetcontr=0;     //need reset the center by hand? 0-no, 1-yes

/********************************************************************
             calculate the distance between the sample and its center 
*********************************************************************/
double Distan(const CSample& samp,const CSpecies& spec)
{
	double dis,temp;

	temp=fabs(samp.x1posi-spec.centerx1);
	temp=temp*temp;
	dis=temp;
	temp=fabs(samp.x2posi-spec.centerx2);
	temp=temp*temp;
	dis+=temp;
	temp=fabs(samp.x3posi-spec.centerx3);
	temp=temp*temp;
	dis+=temp;
	temp=fabs(samp.x4posi-spec.centerx4);
	temp=temp*temp;
	dis+=temp;
	dis=sqrt(dis);

	return dis;
}

/*********************************************************************
                        Main
*********************************************************************/
void main()
{
	//1. obtain the number of samples and centers
	N=9;
	K=3;
	
	//2. initialate the samples and centers	
	CSample*  sam=new CSample[N];	 
	CSpecies* spe=new CSpecies[K];	 
		
	//3. obain and set the coordinate of the samples
	for (int i=0;i<N;i++)
		(*(sam+i)).SetSample(da[i][0],da[i][1],da[i][2],da[i][3]);	//set the coordinate of sample i

	//4. reset the centers
	std::cout<<"是否要重新設置聚合的初始中心?(Y/N)"<<std::endl
		     <<"Y代表重新設置K個聚合的初始中心坐標"<<std::endl
			 <<"N代表默認第i個聚合的初始中心為第i個樣本的坐標"<<std::endl;		     
	std::cin>>issetcontr;
	while (issetcontr!='Y' && issetcontr=='y' && issetcontr=='N' && issetcontr=='n')
	{
		std::cout<<"\a,Input error!"<<std::endl;
		std::cout<<"是否要設置聚合的初始中心?(Y/N)"<<std::endl;
		std::cin>>issetcontr;
	}
	if (issetcontr=='Y'||issetcontr=='y')//reset the centers by hand
	{
		int ncenter=0;
		for (int i=0;i<K;i++)
		{
			std::cout<<"設置第"<<i+1<<"個聚合的初始中心為 樣本(1-N): ";
			std::cin>>ncenter;
			while (ncenter>N || ncenter<=0)
			{
				std::cout<<"\a,Input error!"<<std::endl;
				std::cout<<"設置第"<<i+1<<"個聚合的初始中心為 樣本(1-N): ";
			    std::cin>>ncenter;
			}				
			//set the center i and the coordinates of sample n
			(*(spe+i)).SetCenter((*(sam+ncenter-1)).x1posi,
				                 (*(sam+ncenter-1)).x2posi,
								 (*(sam+ncenter-1)).x3posi,
								 (*(sam+ncenter-1)).x4posi);
		}
	} 
	else if (issetcontr=='N'||issetcontr=='n')//set the coordinates of sample i to k as the default centers
	{
		for (int i=0;i<K;i++)
			(*(spe+i)).SetCenter((*(sam+i)).x1posi,
			                     (*(sam+i)).x2posi,
								 (*(sam+i)).x3posi,
								 (*(sam+i)).x4posi);
	}
	
	//5. iteration
	do 
	{
		for (int j=0;j<K;j++)	         //clear the count of the species
		{
			(*(spe+j)).count=0;
		}
        ischanged=0;			         //set inschanged as 0

		//1). calculate the distance one by one
		for (i=0;i<N;i++)	             
		{
			int f=(*(sam+i)).flag;       //the record of the spieces stored in f			
			double distan=0,temp=Distan((*(sam+i)),(*(spe+f)));

			for (int j=0;j<K;j++)	     
			{
				distan=Distan((*(sam+i)),(*(spe+j)));		     //calculate the distances between sample i and specie j
				if (distan<temp)
				{
					temp=distan;	     //temp stored the shortest distance
					(*(sam+i)).flag=j;	 
				}
			}
			//set sample i to the species of shortest distance
			int s=(*(sam+i)).flag;		 //s stored which sp the sample i is in
			int n=(*(spe+s)).count++;	 //the number add with 1
			(*(spe+s)).member[n]=i;	     //member[] stored which samples are in species s
		}

		//2).recalculate the centers
		for (i=0;i<K;i++)
		{
			int c=(*(spe+i)).count;              
			double tempx1=0,tempx2=0,tempx3=0,tempx4=0,temp=0;
			for (int j=0;j<c;j++)
			{
				int n=(*(spe+i)).member[j];	     
				temp=(*(sam+n)).x1posi/c;   
				tempx1+=temp;
				temp=(*(sam+n)).x2posi/c;
				tempx2+=temp;
				temp=(*(sam+n)).x3posi/c;
				tempx3+=temp;
				temp=(*(sam+n)).x4posi/c;
				tempx4+=temp;
			}
			(*(spe+i)).SetCenter(tempx1,tempx2,tempx3,tempx4);	 //set the coordinate of the centers
		}

		//3).is there any changes of the centers?
		for (i=0;i<K;i++)
		{
			ischanged=ischanged||(*(spe+i)).IsCenterChanged();
		}

	} while(ischanged && timescontr<10000);//4.any changes?

	//6. output
	std::cout<<std::endl<<"最后分類結果為:"<<std::endl;
	for (i=0;i<K;i++)
	{
		std::cout<<"第"<<i+1<<"個聚合共有"<<(*(spe+i)).count<<"個樣本,中心位置為:("
				 <<(*(spe+i)).centerx1<<","
				 <<(*(spe+i)).centerx2<<","
				 <<(*(spe+i)).centerx3<<","
				 <<(*(spe+i)).centerx4<<","
				 <<")"<<std::endl;
		for (int j=0;j<(*(spe+i)).count;j++)
		{
			int n=(*(spe+i)).member[j];
			std::cout<<"第"<<j+1<<"個樣本為:"<<"("
				     <<(*(sam+n)).x1posi<<","
				     <<(*(sam+n)).x2posi<<","
					 <<(*(sam+n)).x3posi<<","
					 <<(*(sam+n)).x4posi<<","					 
					 <<")"<<"   是原來第"<<n+1<<"個樣本"<<std::endl;
		}
		std::cout<<std::endl;
	}
	
}




?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久超碰97人人做人人爱| 欧美在线|欧美| 欧美三级蜜桃2在线观看| 久久精品一区二区| 亚洲永久免费视频| 成人的网站免费观看| 欧美www视频| 婷婷开心激情综合| 色婷婷综合在线| 亚洲欧洲精品一区二区三区不卡| 久久精品国产亚洲aⅴ| 欧美日本一道本| 亚洲免费观看高清完整版在线观看熊 | 678五月天丁香亚洲综合网| 国产精品久久久久久久久免费丝袜| 伦理电影国产精品| 日韩一级成人av| 视频一区在线视频| 欧美日韩精品久久久| 亚洲国产视频一区二区| 日本高清视频一区二区| 亚洲天天做日日做天天谢日日欢 | 91精品国产综合久久久久久久久久| 亚洲视频资源在线| 99久久亚洲一区二区三区青草| 国产欧美日韩视频在线观看| 国产精一品亚洲二区在线视频| 精品久久人人做人人爽| 国产曰批免费观看久久久| 日韩一级完整毛片| 精品一区二区三区蜜桃| 精品国精品自拍自在线| 国产一区亚洲一区| 国产午夜精品久久久久久久| 国产电影精品久久禁18| 国产精品欧美一区二区三区| 91在线云播放| 一二三区精品福利视频| 欧美日韩高清一区| 蜜臀av性久久久久蜜臀aⅴ| 精品久久一区二区| 大白屁股一区二区视频| 18成人在线观看| 欧美专区日韩专区| 人妖欧美一区二区| 国产亚洲制服色| 91丝袜国产在线播放| 亚洲专区一二三| 91精品国产免费久久综合| 老司机午夜精品99久久| 国产精品美女www爽爽爽| 99精品1区2区| 五月婷婷久久综合| 国产日韩欧美不卡在线| 一本色道久久综合亚洲91 | 91在线精品秘密一区二区| 亚洲精品写真福利| 欧美一二三在线| 国产二区国产一区在线观看| 一区二区三区四区不卡在线| 欧美一区二区美女| 成人av片在线观看| 视频一区二区三区中文字幕| 国产婷婷色一区二区三区四区| 色综合久久99| 国产精品一区二区三区四区| 一区二区三区欧美亚洲| 欧美大黄免费观看| 99久久久无码国产精品| 日韩成人av影视| 亚洲欧洲成人自拍| 欧美不卡一区二区三区| 色欲综合视频天天天| 国产一区二区三区不卡在线观看 | 亚洲成人tv网| 欧美国产欧美综合| 这里只有精品99re| 色94色欧美sute亚洲线路二| 激情综合色综合久久综合| 亚洲愉拍自拍另类高清精品| 久久精品无码一区二区三区| 欧美精品在线观看播放| 色综合天天综合网国产成人综合天 | 国产香蕉久久精品综合网| 欧美精品久久一区二区三区 | 国产精品原创巨作av| 亚洲国产精品久久久久婷婷884| 久久久91精品国产一区二区精品| 欧美日韩1234| 在线视频综合导航| 成人app网站| 国产成人在线影院| 国产一区二区0| 久久精品二区亚洲w码| 亚洲风情在线资源站| 亚洲人成精品久久久久久| 国产视频一区在线播放| 亚洲精品一区二区三区四区高清| 欧美男生操女生| 欧美性大战久久久| 色老汉av一区二区三区| 不卡一二三区首页| 成人毛片视频在线观看| 国产不卡视频在线播放| 国产一区二区三区免费观看| 加勒比av一区二区| 国内一区二区在线| 国产呦精品一区二区三区网站| 麻豆精品在线看| 精品无码三级在线观看视频| 精品中文字幕一区二区| 久久成人综合网| 毛片不卡一区二区| 紧缚捆绑精品一区二区| 国内精品伊人久久久久av一坑| 久久国产精品露脸对白| 精品在线你懂的| 国产乱码精品一区二区三区忘忧草| 久久超碰97人人做人人爱| 国产综合久久久久久鬼色| 国产精品88888| av综合在线播放| 色播五月激情综合网| 欧美久久久久久蜜桃| 日韩精品一区二区三区三区免费| 日韩免费电影网站| 久久久午夜精品| 中文字幕一区在线观看视频| 樱花草国产18久久久久| 午夜久久久久久| 韩国在线一区二区| eeuss影院一区二区三区| 欧洲av一区二区嗯嗯嗯啊| 欧美一级二级三级蜜桃| 久久精品一区二区| 亚洲精品乱码久久久久久久久| 午夜av区久久| 国产一区日韩二区欧美三区| 91最新地址在线播放| 欧美一卡二卡三卡| 国产精品看片你懂得| 亚洲线精品一区二区三区八戒| 蜜桃av噜噜一区二区三区小说| 国产精品亚洲成人| 欧美吞精做爰啪啪高潮| 亚洲精品一线二线三线| 一区二区激情视频| 国产专区综合网| 99视频精品全部免费在线| 欧美一区二区在线不卡| 国产精品久久久久久久久图文区 | 精品国产一二三区| 中文字幕在线免费不卡| 午夜精品福利视频网站| 成人美女视频在线观看18| 欧美一区二区网站| 亚洲日本va午夜在线影院| 久久国产综合精品| 色综合久久综合网97色综合| 久久―日本道色综合久久 | 亚洲免费电影在线| 精品制服美女久久| 欧美影院精品一区| 国产日韩精品视频一区| 天天综合色天天综合| 暴力调教一区二区三区| 精品国产一区二区三区久久影院| 亚洲综合色在线| 成人丝袜18视频在线观看| 日韩欧美国产三级| 丝袜a∨在线一区二区三区不卡| 波波电影院一区二区三区| 精品久久久久久久久久久久久久久 | 26uuu国产日韩综合| 午夜激情综合网| 91国偷自产一区二区开放时间| 国产亚洲一区字幕| 激情综合色播激情啊| 欧美日韩在线三区| 亚洲欧美日韩在线播放| 成人午夜免费视频| 久久综合狠狠综合久久激情| 日本在线播放一区二区三区| 91官网在线观看| 最新日韩av在线| 不卡视频一二三四| 国产精品美女久久久久av爽李琼 | 国内精品伊人久久久久av一坑| 91精品一区二区三区在线观看| 一区二区三区中文在线| 99久久伊人精品| 综合激情网...| 91啪九色porn原创视频在线观看| 欧美极品美女视频| 国产成人综合视频| 中文在线一区二区| 成人免费三级在线| 日韩理论电影院| 在线观看日韩高清av| 亚洲影院在线观看|