⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 固定增量算发.cpp

📁 程序中包含了C均值算法和固定增量法,两方法为聚类的很好的方法.
💻 CPP
字号:
#include<iostream.h>
#include<math.h>
#include<stdio.h>
void main()
{
	int a=0,m=0,n=0,s=0,i,j,k,f,num;
	int A[10],B[10];
	int x[10][10][10];
	int y[10][10][10];
	int flag=1;
	//设定m n a的值
	cout<<endl<<"输入区域数a:";    //代表区域数
	cin>>a;
	cout<<"输入每个区域中的模式样本个数m:";   //m代表区域中的模式样本个数
	cin>>m;
    cout<<endl<<"输入维数n:";   //n代表维数
	cin>>n;

	
	//输入各区域的模式样本	
	cout<<endl<<"输入第1个区域的模式样品:"<<endl;
    for(i=0;i<a;i++)
	{
		for(j=0;j<m;j++)
		{
            cout<<"输入第";
			cout<<j+1<<"个模式样品类:"<<endl;
			for(k=0;k<n;k++)
			{
				cin>>x[i][j][k];
			}
		}
		if(i+2<=a)
		{
			cout<<"输入第";
	        cout<<i+2<<"个区域的模式样品:"<<endl;
		}

	}

	//将模式向量转变成增广模式向量
	for(i=0;i<a;i++)
		for(j=0;j<m;j++)
		{
			for(k=n;k>=1;k--)
			{
				y[i][j][k]=x[i][j][k-1];
				
			}
            y[i][j][0]=1;
		}
	cout<<"增广模式向量:"<<endl;
	for(i=0;i<a;i++)
		for(j=0;j<m;j++)
		{
			for(k=0;k<=n;k++)
			{
                cout<<y[i][j][k]<<" ";
			}
            cout<<endl;
		}

   //进行迭代
	cout<<"输入初始权向量(";
	cout<<n+1<<"维):";
	for(i=0;i<=n;i++)
	{   
		cin>>A[i];
	}
	for(i=0;i<=n;i++)
	{
		B[i]=A[i];
	}
	while(flag==1)
	{
		flag=0;
		for(i=0;i<a;i++)
		{
			for(j=0;j<m;j++)
			{   num=0;
				for(k=0;k<=n;k++)
				{
					num=num+y[i][j][k]*A[k];
				}
				if(i==0)
				{
					if(num<=0)
					{ 
						for(k=0;k<=n;k++)
						{
							A[k]=A[k]+y[i][j][k];
						}
                        flag=1;
					}
				}				
			    //else
				if(i==1)
				{  
					if(num>=0)
					{ 
						for(k=0;k<=n;k++)
						{
							A[k]=A[k]-y[i][j][k];
						}
                        flag=1;
					}				
				}				
			}
		}  
		f=0;
		for(i=0;i<=n;i++)
			if(B[i]==A[i])
			{
				f++;
			}
		if(f==n+1)
			flag=0;
		for(i=0;i<=n;i++)
		{
			B[i]=A[i];
		}
		s++;
		cout<<"第";
		cout<<s<<"次迭代的结果:"<<endl;
        for(k=0;k<=n;k++)
		    cout<<A[k]<<" ";
		cout<<endl;
	}
    //输出结果权向量
	cout<<"结果权向量是:"<<endl;
	for(k=0;k<=n;k++)
		cout<<A[k]<<" ";
	cout<<endl;
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -