📄 固定增量法.cpp
字号:
#include<iostream.h>
int W(int D[][4])
{
int j=0;
int i=0;
int count=0;
while(D[j][i]==D[j+1][i]&&j<4)
{
i++;
if(i==4){j++;i=0;}
count++;
}
return count;
}
void DECIDCE(int Y[][4],int A[],int P[])
{
int D[4][4];
for(int j=0;j<4;j++)
{
P[j]=0;
}
for(j=0;j<4;j++)
{
for(int i=0;i<4;i++)
{
P[j]+=Y[j][i]*A[i];
}
if(P[j]<=0&&(j==0||j==1))
{
for(int i=0;i<4;i++)A[i]=Y[j][i]+A[i];
}
if(P[j]>=0&&(j==2||j==3))
{
for(int i=0;i<4;i++)A[i]=A[i]-Y[j][i];
}
for(i=0;i<4;i++)
{
D[j][i]=A[i];
}
}
if(W(D)==12)
{
cout<<"解权向量为:";
for(int i=0;i<4;i++)cout<<A[i]<<" ";
cout<<'\n';
}
else
DECIDCE(Y,A,P);
}
void TEXT(int A[],int X[])
{
int P=0;
for(int i=0;i<4;i++)
{
P+=X[i]*A[i];
}
if(P>0)cout<<"X为第一类"<<'\n';
else cout<<"X为第二类"<<'\n';
}
void main()
{
int X1[4]={1,1,1,1};
int X2[4]={1,0,0,0};
int Y[4][4]={1,1,0,1,
1,0,1,1,
1,1,1,0,
1,0,1,0};
int A[4]={0,0,0,0};
int P[4]={0,0,0,0};
DECIDCE(Y,A,P);
TEXT(A,X1);
TEXT(A,X2);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -