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

📄 kk.cpp

📁 感知器算法实验 w1 w2 分类 早期“人工神经网络”模型
💻 CPP
字号:
#include"stdio.h"
#include"iostream.h"
#include<fstream>

int x[4][3];
int w[100][3];
int m[3];
int y[2];


void shuru1()
{   int i,j;
    int k=0;
	cout<<"请输入w1!!!"<<endl;
    for(i=0;i<2;i++)
	{for(j=0;j<2;j++)        
	   {  
	       cout<<"w1"<<"["<<k<<"]=";
            cin>>w[i][j];
			k++;
       }
	}
    k=0;
	cout<<"请输入w2!!!"<<endl;
    for(i=2;i<4;i++)
	{for(j=0;j<2;j++)
	  {  cout<<"w2"<<"["<<k<<"]=";
            cin>>w[i][j];
			k++;
       }
	}
	cout<<"训练样本为!!!"<<endl;
	cout<<"w1=("<<w[0][0]<<","<<w[0][1]<<")  ("<<w[1][0]<<","<<w[1][1]<<")"<<endl;
	cout<<"w2=("<<w[2][0]<<","<<w[2][1]<<")  ("<<w[3][0]<<","<<w[3][1]<<")"<<endl;

	for(i=0;i<4;i++)
	{ for(j=0;j<2;j++)
	     x[i][j]=w[i][j];
	   x[i][j]=1;
	}
	for(i=2;i<4;i++)
      for(j=0;j<3;j++)
		  x[i][j]=-x[i][j];
	cout<<"增广向量:";
	cout<<"x1=("<<x[0][0]<<","<<x[0][1]<<","<<x[0][2]<<")"<<endl;
	cout<<"增广向量:";
	cout<<"x2=("<<x[1][0]<<","<<x[1][1]<<","<<x[1][2]<<")"<<endl;
	cout<<"增广向量:";
	cout<<"x3=("<<x[2][0]<<","<<x[2][1]<<","<<x[2][2]<<")"<<endl;
	cout<<"增广向量:";
	cout<<"x4=("<<x[3][0]<<","<<x[3][1]<<","<<x[3][2]<<")"<<endl;
}



void xuexi()
{int j;
 int k=0;
 int sum=0;
 int cishu=0;

 
 w[0][0]=1;
 w[0][1]=1;
 w[0][2]=1;
 //cout<<"w[0]="<<w[0][0]<<w[0][0]<<w[0][0]<<endl;
for(;cishu<10;k++)
 {   sum=0; 
	 for(j=0;j<3;j++)
	     sum+=w[k][j]*x[k%4][j];
      

	  if(sum>0)
	  {for(j=0;j<3;j++)
		 w[k+1][j]=w[k][j];
	   cishu++;
	  }
	  else
	  {for(j=0;j<3;j++)
		 w[k+1][j]=w[k][j]+x[k%4][j];
	   cishu=0;
	  }
	  //cout<<"k="<<k<<"****";
	  //cout<<"sum="<<sum<<"////////";
      //cout<<w[k+1][0]<<"****"<<w[k+1][1]<<"****"<<w[k+1][2]<<endl;
}
for(j=0;j<3;j++)
		  m[j]=w[k][j];
cout<<"权向量:W*=("<<m[0]<<","<<m[1]<<","<<m[2]<<")"<<endl;


//cout<<"g(x)="<<m[0]<<"*X+"<<m[1]<<"*Y+"<<m[2]<<endl;

cout<<"分界面为:"<<m[0]<<"*X+"<<m[1]<<"*Y+"<<m[2]<<"=0"<<endl;



}




void shuru2()
{int kk=0;
 cout<<"请输入待分类的样本Wx!!!"<<endl;
 cout<<"W[x]=";
 cin>>y[0];
 cout<<"W[y]=";
 cin>>y[1];
 kk=m[0]*y[0]+m[1]*y[1]+m[2];
 if(kk<0)
	 cout<<"Wx属于:w2类"<<endl;
 else
     cout<<"Wx属于:w1类"<<endl;


}


void main()
{   cout<<"请输入训练样本(注:二维)数据:"<<endl;
    
    shuru1();
	xuexi();
	shuru2();
	
}

⌨️ 快捷键说明

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