23/11/09 19:30
AlesPalla
Allora ho appena creato un algoritmo che mescola un mazzo da 40 carte..
Per generarlo ho pensato di creare un vettore di 40 int che associa ad ogni numero la sua posizione...
Per creare il vettore io ho usato questo algoritmo fatto da me:
e per generare il numero casuale ho usato questo che è + o - standard:
Il problema è che l'algoritmo funziona BENISSIMO fino tipo al 24 numero...poi si blocca inspiegabilmente...
secondo voi cosa è sbagliato?
Per generarlo ho pensato di creare un vettore di 40 int che associa ad ogni numero la sua posizione...
Per creare il vettore io ho usato questo algoritmo fatto da me:
void genera_pos(int*p){ int c; srand(time(0)); unsigned long int a=0; //vettore di bit utilizzato come contatore for (int i=0;i<40;i++){ c=numero_cas(0,40); if (((1<<c)&a)==0){ //verifica se il c-esimo bit è acceso p[i]=c; a|=(1<<c); //accende il c-esimo bit } else { i--; //decrementa e fa in modo di reiterare il ciclo } }
e per generare il numero casuale ho usato questo che è + o - standard:
int numero_cas(int iniz,int fin){ return rand()%fin +iniz ; }
Il problema è che l'algoritmo funziona BENISSIMO fino tipo al 24 numero...poi si blocca inspiegabilmente...
secondo voi cosa è sbagliato?
aaa