Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<iostream>
- #include<conio.h>
- #include<iomanip>
- #include<time.h>
- #include<stdlib.h>
- #define N 8
- using namespace std;
- int evaluare( int permutare[]){
- int erori=0;
- for(int i=1; i<N-1; i++){
- for(int j=i+1;j<N; j++){
- if(abs(permutare[i]-permutare[j])==abs(i-j))
- erori++;
- }
- }
- return erori;
- }
- int main(){
- int elemente[N], permutare[N], perm[N];
- srand(time(0));
- int gasit=0;
- while(gasit==0){
- for(int i=0; i<N;i++){
- elemente[i]=i+1;
- }
- int lungime=N, contor=0;
- while(lungime>0){
- int poz=rand()%lungime;
- permutare[contor++]=elemente[poz];
- for(int i=poz; i<lungime-1; i++)
- elemente[i]=elemente[i+1];
- lungime--;
- }
- for (int i = 0; i < N; i++)
- cout<<permutare[i] <<" ";
- cout<<endl;
- cout<<evaluare(permutare) <<" ";
- cout<<endl;
- for(int k=0;(gasit==0 && k<100); k++){
- for(int i=0; i<N; i++){//perm[N] este copia
- perm[i]=permutare[i];
- //cout<<perm[i]<<" ";
- }
- int x=rand()%N;
- int y=rand()%N;
- while(x==y)
- y=rand()%N;
- int temp=perm[x];
- perm[x]=perm[y];
- perm[y]=temp;
- for(int i=0; i<N; i++)
- cout<<permutare[i]<<" ";
- cout<<endl;
- cout<<evaluare(permutare) <<" ";
- cout<<endl;
- if(evaluare(perm)<evaluare(permutare))
- for(int i=0; i<N; i++)
- permutare[i]=perm[i];
- if(evaluare(permutare)==0)
- gasit=1;
- }
- }
- for(int i=0; i<N; i++)
- cout<<permutare[i]<<" ";
- cout<<endl;
- cout<<evaluare(permutare) <<" ";
- cout<<endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment