luni, 30 martie 2009

Permutari
#include
int n,s[100];
void init(int k)
{s[k]=0;}
int succesor(int s[100],int k)
{if(s[k]else return 0;
}
int valid(int s[100],int k)
{int i;
for(i=1;i<=k-1;i++)
if(s[k]==s[i])
return 0;
return 1;
}
int solutie(int k)
{if(k==n) return 1;
return 0;
}
void Afiseaza(int s[100],int k,int nrsol)
{int i;

cout<for(i=1;i<=n;i++)
cout<}
void Back(int s[100],int k)
{int ok,nrsol=0;
init(k);
while(k>0)
{ok=0;
while(succesor(s,k)&&!ok)
{s[k]=s[k]+1;
if(valid(s,k)) ok=1;
}
if(ok==1)
if(solutie(k)) {nrsol++;Afiseaza(s,k,nrsol);}
else{k=k+1;
s[k]=0;
}
else k--;
}
}
void main()
{int s[100],k;
cout<<"n=";
cin >>n;

k=1;
Back(s,k);
}
Combinari
#include
int n,m,s[100];
void init(int k)
{s[k]=0;}
int succesor(int s[100],int k)
{if(s[k]else return 0;
}
int valid(int s[100],int k)
{int i;
if(k==1) return 1;
else {for(i=1;i<=k-1;i++)
if(s[k]==s[i])
return 0;
if(s[k]<=s[k-1]) return 0;
}

return 1;
}
int solutie(int k)
{if(k==m) return 1;
return 0;
}
void Afiseaza(int s[100],int k,int nrsol)
{int i;

cout<<" "<<"sol nr"<for(i=1;i<=m;i++)
cout<}
void Back(int s[100],int k)
{int ok,nrsol=0;
init(k);
while(k>0)
{ok=0;
while(succesor(s,k)&&!ok)
{s[k]=s[k]+1;
if(valid(s,k)) ok=1;
}
if(ok==1)
if(solutie(k)) {nrsol++;Afiseaza(s,k,nrsol);}
else{k=k+1;
s[k]=0;
}
else k--;
}
}
void main()
{int s[100],k;
cout<<"n=";
cin >>n;
cout<<"m=";
cin>>m;

k=1;
Back(s,k);
}
Aranjamente
#include
int n,m,s[100];
void init(int k)
{s[k]=0;}
int succesor(int s[100],int k)
{if(s[k]else return 0;
}
int valid(int s[100],int k)
{int i;
for(i=1;i<=k-1;i++)
if(s[k]==s[i])
return 0;
return 1;
}
int solutie(int k)
{if(k==m) return 1;
return 0;
}
void Afiseaza(int s[100],int k,int nrsol)
{int i;

cout<<" "<<"sol nr"<for(i=1;i<=m;i++)
cout<}
void Back(int s[100],int k)
{int ok,nrsol=0;
init(k);
while(k>0)
{ok=0;
while(succesor(s,k)&&!ok)
{s[k]=s[k]+1;
if(valid(s,k)) ok=1;
}
if(ok==1)
if(solutie(k)) {nrsol++;Afiseaza(s,k,nrsol);}
else{k=k+1;
s[k]=0;
}
else k--;
}
}
void main()
{int s[100],k;
cout<<"n=";
cin >>n;
cout<<"m=";
cin>>m;

k=1;
Back(s,k);
}

Niciun comentariu:

Trimiteți un comentariu