TABLE SHOWN BELOW DISPLAY THE INPUT DATA AND CORESSPONDING OUT DATA
APPLY THE FIRING RULE TO ABTAIN THE CORRECT TABLE USING. WE HAVE THE (0 TOUGHT SET) AND (1-TOUGHT SET)
X1: 0 0 0 0 1 1 1 1
X2: 0 0 1 1 0 0 1 1
X3: 0 1 0 1 0 1 0 1
OUT: 0 0 0/1 0/1 0/1 1 0/1 1
#include<stdio.h>
void print(int*arr,int n)
{
int i;
for(i=0;i<n;i++)
printf("%d ",arr[i]);
printf("\n\n");
}
int main()
{
int i,j,counter,maxMatch,oneCount,zeroCount,current_j;
int x1[]={0,0,0,0,1,1,1,1};
int x2[]={0,0,1,1,0,0,1,1};
int x3[]={0,1,0,1,0,1,0,1};
int out[]={0,0,-1,-1,-1,1,-1,1};
int newOut[8];
for(i=0;i<8;i++)
newOut[i]=out[i];
for(i=0;i<8;i++)
{
counter=0;
maxMatch=0;
if(out[i]==-1)
{
for(j=0;j<8;j++)
{
counter=0;
if(out[j]!=-1 && j!=i)
{
if(x1[j]==x1[i])
counter++;
if(x2[j]==x2[i])
counter++;
if(x3[j]==x3[i])
counter++;
}
if(counter>maxMatch)
maxMatch=counter;
}
zeroCount=0;
oneCount=0;
for(j=0;j<8;j++)
{
counter=0;
if(out[j]!=-1 && j!=i)
{
if(x1[j]==x1[i])
counter++;
if(x2[j]==x2[i])
counter++;
if(x3[j]==x3[i])
counter++;
if(counter==maxMatch)
{
if(out[j]==0)
zeroCount++;
else if(out[j]==1)
oneCount++;
}
}
}
if(zeroCount>oneCount)
newOut[i]=0;
else if(zeroCount<oneCount)
newOut[i]=1;
else
newOut[i]=-1;
}
}
printf("x1 : \n");
print(x1,8);
printf("x2 : \n");
print(x2,8);
printf("x3 : \n");
print(x3,8);
printf("old out : \n");
print(out,8);
printf("new out : \n");
print(newOut,8);
return 0;
}
No comments:
Post a Comment