📄 output.c
字号:
}
num_class=count;
}
void con_rule()
{
int i,j,l,same;
for(i=0;i<k;i++)
{if(readwab(add(path,"validrow.wab"),(long int)(i))==1)
{writewab(add(path,"consiste.wab"),(long int)(i),1);}
}
for(i=0;i<k;i++)
if(readwab(add(path,"validrow.wab"),(long int)(i))==1)
{
same=0;
for(j=0;j<k;j++)
if(readwab(add(path,"validrow.wab"),(long int)(j))==1)
{
same=1;
for(l=0;l<m;l++)
{
if(readwab(add(path,"list.wab"),(long int)(i*(m+n)+l))!=
readwab(add(path,"list.wab"),(long int)(j*(m+n)+l)))
{same=0;break;}
}
if(same==1)
{
if(readwab(add(path,"declink.wab"),(long int)(j))
!=readwab(add(path,"declink.wab"),(long int)(i)))
{writewab(add(path,"consiste.wab"),(long int)(i),0);
writewab(add(path,"consiste.wab"),(long int)(j),0);}
}
}
}
}
void con_core()
{
int i,j,l,s,same,contin;
for(i=0;i<m;i++)
if(readwab(add(path,"validcol.wab"),(long int)(i))==1)
{
for(j=0;j<k-1;j++)
if(readwab(add(path,"validrow.wab"),(long int)(j))==1)
{
if(readwab(add(path,"consiste.wab"),(long int)(j))==1)
{
contin=1;
for(l=j+1;l<k;l++)
if(readwab(add(path,"validrow.wab"),(long int)(l))==1)
{
same=1;
for(s=0;s<m;s++)
if(readwab(add(path,"validcol.wab"),(long int)(s))==1)
{
if(s!=i)
if(readwab(add(path,"list.wab"),(long int)(j*(m+n)+s))!=
readwab(add(path,"list.wab"),(long int)(l*(m+n)+s)))
{same=0;break;}
}
if(same==1)
{
if(readwab(add(path,"declink.wab"),(long int)(j))!=
readwab(add(path,"declink.wab"),(long int)(l)))
{writewab(add(path,"core.wab"),(long int)(i),1);
num_core++;contin=0;break;}
}
}
if(contin==0)
{break;}
}
}
}
}
int check(int *checkflag)
{
int i,j,l,same,answer=1;
for(i=0;i<k;i++)
if((readwab(add(path,"consiste.wab"),(long int)(i))==1)&&(answer==1))
for(j=0;j<k;j++)
{
same=1;
for(l=0;l<m;l++)
{
if(checkflag[l]==1)
if(readwab(add(path,"list.wab"),(long int)(i*(m+n)+l))!=
readwab(add(path,"list.wab"),(long int)(j*(m+n)+l)))
{same=0;break;}
}
if(same==1)
if(readwab(add(path,"declink.wab"),(long int)(i))!=
readwab(add(path,"declink.wab"),(long int)(j)))
{answer=0;break;}
}
return answer;
}
#include "c:\source\theme\con_che.c"
con_redu()
{
int i,j,l,sum,wf,wk,wl;
int temp[condition]={0};
int checkflag[condition]={0},checkresult;
for(i=0;i<=m-num_core;i++)
{
sum=0;
for(j=0;j<m;j++)
{
if(readwab(add(path,"core.wab"),(long int)(j))==0)
{temp[sum]=j;sum++;}
}
if(i!=0)
if(sum==0)
{break;}
for(j=0;j<sizeofresult;j++)
{result[j]=0;}
head=result;
p=stack;
for(j=0;j<sizeofstack;j++)
{*p=0;}
p=stack;
s=0;
z=0;
function(1,i,sum);
if(result[0]==0)
{
for(j=0;j<m;j++)
{
if(readwab(add(path,"core.wab"),(long int)(j))==1)
{checkflag[j]=1;}
}
checkresult=check(checkflag);
if(checkresult!=0)
{
for(j=0;j<m;j++)
{writewab(add(path,"reduresu.wab"),(long int)
(num_reduct*m+j),checkflag[j]);}
num_reduct++;
break;
}
}
else
{
l=0;
while(result[l]!=0)
{
for(j=0;j<m;j++)
{checkflag[j]=0;}
for(j=0;j<m;j++)
{
if(readwab(add(path,"core.wab"),(long int)(j))==1)
{checkflag[j]=1;}
}
for(j=0;j<i;j++)
{checkflag[temp[result[l]-1]]=1;l++;}
for(j=0;j<m;j++)
{
if(readwab(add(path,"validcol.wab"),(long int)(j))!=1)
{checkflag[j]=0;}
}
wf=0;
for(wl=0;wl<num_reduct;wl++)
{
wf=1;
for(wk=0;wk<m;wk++)
{
if(readwab(add(path,"reduresu.wab"),(long int)(wl*m+wk))==1)
if(checkflag[wk]==0)
{wf=0;break;}
}
if(wf==1)
{break;}
}
if(wf==1)
{checkresult=0;}
else
{checkresult=check(checkflag);}
if(checkresult!=0)
{
for(j=0;j<m;j++)
{
writewab(add(path,"reduresu.wab"),(long int)(num_reduct*m+j),
checkflag[j]);
if((checkflag[j]==1)&&(readwab(add(path,"core.wab"),
(long int)(j))!=1))
{writewab(add(path,"core.wab"),(long int)(temp[result[l]-2]),0);}
}
num_reduct++;
}
}
}
}
}
void re_dupl_row()
{
int loop,i,j,l,same;
for(loop=0;loop<kind;loop++)
{
if(num_reduct<loop+1){break;}
for(i=0;i<k;i++)
{writewab(add(path,"revalidr.wab"),(long int)(loop*k+i),1);}
for(i=0;i<k;i++)
{
if(readwab(add(path,"revalidr.wab"),(long int)(loop*k+i))==1)
{
for(j=0;j<k;j++)
if(i!=j)
{
same=1;
for(l=0;l<m+n;l++)
if((readwab(add(path,"reduresu.wab"),(long int)(loop*m+l))==1)
||(l>=m))
{
if(readwab(add(path,"list.wab"),(long int)(i*(m+n)+l))!=
readwab(add(path,"list.wab"),(long int)(j*(m+n)+l)))
{same=0;break;}
}
if(same==1)
{writewab(add(path,"revalidr.wab"),(long int)(loop*k+j),-1000-i);}
}
}
}
}
}
void value_core()
{
int i,j,l,loop1,loop2,same;
for(i=0;i<kind;i++)
{
if(num_reduct<i+1)
{break;}
for(j=0;j<k;j++)
if((readwab(add(path,"revalidr.wab"),(long int)(i*m+j))==1)&&
(readwab(add(path,"consiste.wab"),(long int)(j))==1))
{
for(l=0;l<m;l++)
{
if(readwab(add(path,"reduresu.wab"),(long int)(i*m+l))==1)
{
writewab(add(path,"vc.wab"),(long int)(i*k*m+j*m+l),0);
for(loop1=0;loop1<k;loop1++)
{
if(loop1!=j)
{
same=1;
for(loop2=0;loop2<m;loop2++)
{
if(loop2!=l)
if(readwab(add(path,"reduresu.wab"),
(long int)(i*m+loop2))==1)
{
if(readwab(add(path,"list.wab"),(long int)
(loop1*(m+n)+loop2))!=readwab(add(path,"list.wab"),
(long int)(j*(m+n)+loop2)))
{same=0;break;}
}
}
if(same==1)
{
if(readwab(add(path,"declink.wab"),(long int)(loop1))!=
readwab(add(path,"declink.wab"),(long int)(j)))
{writewab(add(path,"vc.wab"),(long int)(i*k*m+j*m+l),1);
break;}
}
}
}
}
}
}
}
}
int consistencecheck(int x,int *checkflag)
{
int i,j,same,answer=1;
for(i=0;i<k;i++)
{
if(i!=x)
{
same=1;
for(j=0;j<m;j++)
{
if(checkflag[j]==1)
{
if(readwab(add(path,"list.wab"),(long int)(x*(m+n)+j))!=
readwab(add(path,"list.wab"),(long int)(i*(m+n)+j)))
{same=0;break;}
}
}
if(same==1)
{
if(readwab(add(path,"declink.wab"),(long int)(x))!=
readwab(add(path,"declink.wab"),(long int)(i)))
{answer=0;break;}
}
}
}
return answer;
}
#include "cons_che.c"
void value_reduct()
{
int i,j,l,count1,consistence,count2,count3,count4,same,loop1,checkresult;
int wl,wk,wf;
int checkflag[condition];
int temp[condition];
for(loop1=0;loop1<num_reduct;loop1++)
{
for(i=0;i<k;i++)
if((readwab(add(path,"revalidr.wab"),(long int)(loop1*k+i))==1)&&
(readwab(add(path,"consiste.wab"),(long int)(i))==1))
{
count1=0;
count2=0;
num_valuereduct[loop1][i]=0;
for(j=0;j<m;j++)
{
if(readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+j))==1)
{count1++;}
if(readwab(add(path,"reduresu.wab"),(long int)(loop1*m+j))==1)
{count2++;}
}
if(count1!=0)
{
consistence=1;
for(j=0;j<k;j++)
if(readwab(add(path,"revalidr.wab"),(long int)(loop1*k+j))==1)
{
if(i!=j)
{
same=1;
for(l=0;l<m;l++)
{
if(readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+l))==1)
{
if(readwab(add(path,"list.wab"),(long int)(i*(m+n)+l))!=
readwab(add(path,"list.wab"),(long int)(j*(m+n)+l)))
{same=0;break;}
}
}
if(same==1)
{
if(readwab(add(path,"declink.wab"),(long int)(i))!=
readwab(add(path,"declink.wab"),(long int)(j)))
{consistence=0;break;}
}
}
}
if(consistence!=0)
{
for(l=0;l<m;l++)
{
writewab(add(path,"vr.wab"),(long int)
(loop1*k*kind*m+i*kind*m+num_valuereduct[loop1][i]*m+l),
readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+l)));}
num_valuereduct[loop1][i]++;
}
else
{
for(j=1;j<=count2-count1;j++)
{
for(l=0;l<m;l++)
{temp[l]=0;}
count3=0;
for(l=0;l<m;l++)
{
if((readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+l))==0)
&&(readwab(add(path,"reduresu.wab"),(long int)(loop1*m+l))==1))
{temp[count3]=l;count3++;}
}
if(count3==0)
{break;}
p=stack;
for(l=0;l<sizeofstack;l++)
{*p=0;p++;}
p=stack;
for(l=0;l<sizeofresult;l++)
{result[l]=0;}
head=result;
s=0;
z=0;
function(1,j,count3);
count4=0;
while(result[count4]!=0)
{
for(l=0;l<m;l++)
{checkflag[l]=0;}
for(l=0;l<j;l++)
{checkflag[temp[result[count4]-1]]=1;count4++;}
for(l=0;l<m;l++)
{
if(readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+l))==1)
{checkflag[l]=1;}
}
wf=0;
for(wl=0;wl<num_valuereduct[loop1][i];wl++)
{
wf=1;
for(wk=0;wk<m;wk++)
{
if(readwab(add(path,"vr.wab"),(long int)
(loop1*k*kind*m+i*kind*m+wl*m+wk))==1)
if(checkflag[wk]==0)
{wf=0;break;}
}
if(wf==1)
{break;}
}
if(wf==1)
{checkresult=0;}
else
{checkresult=consistencecheck(i,checkflag);}
if(checkresult==1)
{
for(l=0;l<m;l++)
{
if(checkflag[l]==1)
{writewab(add(path,"vr.wab"),(long int)
(loop1*k*kind*m+i*kind*m+num_valuereduct[loop1][i]*m+l),1);
}
}
num_valuereduct[loop1][i]++;
}
}
}
}
}
if(count1==0)
{
for(j=1;j<=count2;j++)
{
for(l=0;l<m;l++)
{temp[l]=0;}
count3=0;
for(l=0;l<m;l++)
{
if((readwab(add(path,"vc.wab"),(long int)(loop1*k*m+i*m+l))==0)
&&(readwab(add(path,"reduresu.wab"),(long int)(loop1*m+l))==1))
{temp[count3]=l;count3++;}
}
if(count3==0)
{break;}
p=stack;
for(l=0;l<sizeofstack;l++)
{*p=0;}
p=stack;
for(l=0;l<sizeofresult;l++)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -