25 Zufallszahlen aber jede nur einmal vergeben...
-
Hallo alle,
ich habe ein Problem .. und zwar möchte ich ein Spiel schreiben und muss dafür in ein int array 25 Zufallszahlen reinschreiben ... jede Zahl (0-24) soll aber immer nur einmal vorkommen ...
im Moment sieht das ganze So aus:
srand(time(NULL)); do{ for(int i=0;i<24;i++) { kofferarray[i]= rand()%25; } }while(kofferarray[0]==kofferarray[1]||kofferarray[0]==kofferarray[2]|| kofferarray[0]==kofferarray[3]||kofferarray[0]==kofferarray[4]|| kofferarray[0]==kofferarray[5]||kofferarray[0]==kofferarray[6]|| kofferarray[0]==kofferarray[7]||kofferarray[0]==kofferarray[8]|| kofferarray[0]==kofferarray[9]||kofferarray[0]==kofferarray[10]|| kofferarray[0]==kofferarray[11]||kofferarray[0]==kofferarray[12]|| kofferarray[0]==kofferarray[13]||kofferarray[0]==kofferarray[14]|| kofferarray[0]==kofferarray[15]||kofferarray[0]==kofferarray[16]|| kofferarray[0]==kofferarray[17]||kofferarray[0]==kofferarray[18]|| kofferarray[0]==kofferarray[19]||kofferarray[0]==kofferarray[20]|| kofferarray[0]==kofferarray[21]||kofferarray[0]==kofferarray[22]|| kofferarray[0]==kofferarray[23]||kofferarray[0]==kofferarray[24]|| kofferarray[0]==kofferarray[25]|| kofferarray[1]==kofferarray[2]||kofferarray[1]==kofferarray[3]|| kofferarray[1]==kofferarray[4]||kofferarray[1]==kofferarray[5]|| kofferarray[1]==kofferarray[6]||kofferarray[1]==kofferarray[7]|| kofferarray[1]==kofferarray[8]||kofferarray[1]==kofferarray[9]|| kofferarray[1]==kofferarray[10]||kofferarray[1]==kofferarray[11]|| kofferarray[1]==kofferarray[12]||kofferarray[1]==kofferarray[13]|| kofferarray[1]==kofferarray[14]||kofferarray[1]==kofferarray[15]|| kofferarray[1]==kofferarray[16]||kofferarray[1]==kofferarray[17]|| kofferarray[1]==kofferarray[18]||kofferarray[1]==kofferarray[19]|| kofferarray[1]==kofferarray[20]||kofferarray[1]==kofferarray[21]|| kofferarray[1]==kofferarray[22]||kofferarray[1]==kofferarray[23]|| kofferarray[1]==kofferarray[24]||kofferarray[1]==kofferarray[25]|| kofferarray[2]==kofferarray[3]||kofferarray[2]==kofferarray[3]|| kofferarray[2]==kofferarray[5]||kofferarray[2]==kofferarray[5]|| kofferarray[2]==kofferarray[7]||kofferarray[2]==kofferarray[7]|| kofferarray[2]==kofferarray[9]||kofferarray[2]==kofferarray[9]|| kofferarray[2]==kofferarray[11]||kofferarray[2]==kofferarray[11]|| kofferarray[2]==kofferarray[13]||kofferarray[2]==kofferarray[13]|| kofferarray[2]==kofferarray[15]||kofferarray[2]==kofferarray[15]|| kofferarray[2]==kofferarray[17]||kofferarray[2]==kofferarray[17]|| kofferarray[2]==kofferarray[19]||kofferarray[2]==kofferarray[19]|| kofferarray[2]==kofferarray[21]||kofferarray[2]==kofferarray[21]|| kofferarray[2]==kofferarray[23]||kofferarray[2]==kofferarray[23]|| kofferarray[2]==kofferarray[25]|| kofferarray[3]==kofferarray[4]||kofferarray[3]==kofferarray[5]|| kofferarray[3]==kofferarray[6]||kofferarray[3]==kofferarray[7]|| kofferarray[3]==kofferarray[8]||kofferarray[3]==kofferarray[9]|| kofferarray[3]==kofferarray[10]||kofferarray[3]==kofferarray[11]|| kofferarray[3]==kofferarray[12]||kofferarray[3]==kofferarray[13]|| kofferarray[3]==kofferarray[14]||kofferarray[3]==kofferarray[15]|| kofferarray[3]==kofferarray[16]||kofferarray[3]==kofferarray[17]|| kofferarray[3]==kofferarray[18]||kofferarray[3]==kofferarray[19]|| kofferarray[3]==kofferarray[20]||kofferarray[3]==kofferarray[21]|| kofferarray[3]==kofferarray[22]||kofferarray[3]==kofferarray[23]|| kofferarray[3]==kofferarray[24]||kofferarray[3]==kofferarray[25]|| kofferarray[4]==kofferarray[5]||kofferarray[4]==kofferarray[6]|| kofferarray[4]==kofferarray[7]||kofferarray[4]==kofferarray[8]|| kofferarray[4]==kofferarray[9]||kofferarray[4]==kofferarray[10]|| kofferarray[4]==kofferarray[11]||kofferarray[4]==kofferarray[12]|| kofferarray[4]==kofferarray[13]||kofferarray[4]==kofferarray[14]|| kofferarray[4]==kofferarray[15]||kofferarray[4]==kofferarray[16]|| kofferarray[4]==kofferarray[17]||kofferarray[4]==kofferarray[18]|| kofferarray[4]==kofferarray[19]||kofferarray[4]==kofferarray[20]|| kofferarray[4]==kofferarray[21]||kofferarray[4]==kofferarray[22]|| kofferarray[4]==kofferarray[23]||kofferarray[4]==kofferarray[24]|| kofferarray[4]==kofferarray[25]|| kofferarray[5]==kofferarray[6]||kofferarray[5]==kofferarray[7]|| kofferarray[5]==kofferarray[8]||kofferarray[5]==kofferarray[9]|| kofferarray[5]==kofferarray[10]||kofferarray[5]==kofferarray[11]|| kofferarray[5]==kofferarray[12]||kofferarray[5]==kofferarray[13]|| kofferarray[5]==kofferarray[14]||kofferarray[5]==kofferarray[15]|| kofferarray[5]==kofferarray[16]||kofferarray[5]==kofferarray[17]|| kofferarray[5]==kofferarray[18]||kofferarray[5]==kofferarray[19]|| kofferarray[5]==kofferarray[20]||kofferarray[5]==kofferarray[21]|| kofferarray[5]==kofferarray[22]||kofferarray[5]==kofferarray[23]|| kofferarray[5]==kofferarray[24]||kofferarray[5]==kofferarray[25]|| kofferarray[6]==kofferarray[7]||kofferarray[6]==kofferarray[8]|| kofferarray[6]==kofferarray[9]||kofferarray[6]==kofferarray[10]|| kofferarray[6]==kofferarray[11]||kofferarray[6]==kofferarray[12]|| kofferarray[6]==kofferarray[13]||kofferarray[6]==kofferarray[14]|| kofferarray[6]==kofferarray[15]||kofferarray[6]==kofferarray[16]|| kofferarray[6]==kofferarray[17]||kofferarray[6]==kofferarray[18]|| kofferarray[6]==kofferarray[19]||kofferarray[6]==kofferarray[20]|| kofferarray[6]==kofferarray[21]||kofferarray[6]==kofferarray[22]|| kofferarray[6]==kofferarray[23]||kofferarray[6]==kofferarray[24]|| kofferarray[6]==kofferarray[25]|| kofferarray[7]==kofferarray[8]||kofferarray[7]==kofferarray[9]|| kofferarray[7]==kofferarray[10]||kofferarray[7]==kofferarray[11]|| kofferarray[7]==kofferarray[12]||kofferarray[7]==kofferarray[13]|| kofferarray[7]==kofferarray[14]||kofferarray[7]==kofferarray[15]|| kofferarray[7]==kofferarray[16]||kofferarray[7]==kofferarray[17]|| kofferarray[7]==kofferarray[18]||kofferarray[7]==kofferarray[19]|| kofferarray[7]==kofferarray[20]||kofferarray[7]==kofferarray[21]|| kofferarray[7]==kofferarray[22]||kofferarray[7]==kofferarray[23]|| kofferarray[7]==kofferarray[24]||kofferarray[7]==kofferarray[25]|| kofferarray[8]==kofferarray[9]|| kofferarray[8]==kofferarray[10]||kofferarray[8]==kofferarray[11]|| kofferarray[8]==kofferarray[12]||kofferarray[8]==kofferarray[13]|| kofferarray[8]==kofferarray[14]||kofferarray[8]==kofferarray[15]|| kofferarray[8]==kofferarray[16]||kofferarray[8]==kofferarray[17]|| kofferarray[8]==kofferarray[18]||kofferarray[8]==kofferarray[19]|| kofferarray[8]==kofferarray[20]||kofferarray[8]==kofferarray[21]|| kofferarray[8]==kofferarray[22]||kofferarray[8]==kofferarray[23]|| kofferarray[8]==kofferarray[24]||kofferarray[8]==kofferarray[25]|| kofferarray[9]==kofferarray[10]||kofferarray[9]==kofferarray[11]|| kofferarray[9]==kofferarray[12]||kofferarray[9]==kofferarray[13]|| kofferarray[9]==kofferarray[14]||kofferarray[9]==kofferarray[15]|| kofferarray[9]==kofferarray[16]||kofferarray[9]==kofferarray[17]|| kofferarray[9]==kofferarray[18]||kofferarray[9]==kofferarray[19]|| kofferarray[9]==kofferarray[20]||kofferarray[9]==kofferarray[21]|| kofferarray[9]==kofferarray[22]||kofferarray[9]==kofferarray[23]|| kofferarray[9]==kofferarray[24]||kofferarray[9]==kofferarray[25]|| kofferarray[10]==kofferarray[11]|| kofferarray[10]==kofferarray[12]||kofferarray[10]==kofferarray[13]|| kofferarray[10]==kofferarray[14]||kofferarray[10]==kofferarray[15]|| kofferarray[10]==kofferarray[16]||kofferarray[10]==kofferarray[17]|| kofferarray[10]==kofferarray[18]||kofferarray[10]==kofferarray[19]|| kofferarray[10]==kofferarray[20]||kofferarray[10]==kofferarray[21]|| kofferarray[10]==kofferarray[22]||kofferarray[10]==kofferarray[23]|| kofferarray[10]==kofferarray[24]||kofferarray[10]==kofferarray[25]|| kofferarray[11]==kofferarray[12]||kofferarray[11]==kofferarray[13]|| kofferarray[11]==kofferarray[14]||kofferarray[11]==kofferarray[15]|| kofferarray[11]==kofferarray[16]||kofferarray[11]==kofferarray[17]|| kofferarray[11]==kofferarray[18]||kofferarray[11]==kofferarray[19]|| kofferarray[11]==kofferarray[20]||kofferarray[11]==kofferarray[21]|| kofferarray[11]==kofferarray[22]||kofferarray[11]==kofferarray[23]|| kofferarray[11]==kofferarray[24]||kofferarray[11]==kofferarray[25]|| kofferarray[12]==kofferarray[13]|| kofferarray[12]==kofferarray[14]||kofferarray[12]==kofferarray[15]|| kofferarray[12]==kofferarray[16]||kofferarray[12]==kofferarray[17]|| kofferarray[12]==kofferarray[18]||kofferarray[12]==kofferarray[19]|| kofferarray[12]==kofferarray[20]||kofferarray[12]==kofferarray[21]|| kofferarray[12]==kofferarray[22]||kofferarray[12]==kofferarray[23]|| kofferarray[12]==kofferarray[24]||kofferarray[12]==kofferarray[25]|| kofferarray[13]==kofferarray[14]||kofferarray[13]==kofferarray[15]|| kofferarray[13]==kofferarray[16]||kofferarray[13]==kofferarray[17]|| kofferarray[13]==kofferarray[18]||kofferarray[13]==kofferarray[19]|| kofferarray[13]==kofferarray[20]||kofferarray[13]==kofferarray[21]|| kofferarray[13]==kofferarray[22]||kofferarray[13]==kofferarray[23]|| kofferarray[13]==kofferarray[24]||kofferarray[13]==kofferarray[25]|| kofferarray[14]==kofferarray[15]|| kofferarray[14]==kofferarray[16]||kofferarray[14]==kofferarray[17]|| kofferarray[14]==kofferarray[18]||kofferarray[14]==kofferarray[19]|| kofferarray[14]==kofferarray[20]||kofferarray[14]==kofferarray[21]|| kofferarray[14]==kofferarray[22]||kofferarray[14]==kofferarray[23]|| kofferarray[14]==kofferarray[24]||kofferarray[14]==kofferarray[25]|| kofferarray[15]==kofferarray[16]||kofferarray[15]==kofferarray[17]|| kofferarray[15]==kofferarray[18]||kofferarray[15]==kofferarray[19]|| kofferarray[15]==kofferarray[20]||kofferarray[15]==kofferarray[21]|| kofferarray[15]==kofferarray[22]||kofferarray[15]==kofferarray[23]|| kofferarray[15]==kofferarray[24]||kofferarray[15]==kofferarray[25]|| kofferarray[16]==kofferarray[17]|| kofferarray[16]==kofferarray[18]||kofferarray[16]==kofferarray[19]|| kofferarray[16]==kofferarray[20]||kofferarray[16]==kofferarray[21]|| kofferarray[16]==kofferarray[22]||kofferarray[16]==kofferarray[23]|| kofferarray[16]==kofferarray[24]||kofferarray[16]==kofferarray[25]|| kofferarray[17]==kofferarray[18]||kofferarray[17]==kofferarray[19]|| kofferarray[17]==kofferarray[20]||kofferarray[17]==kofferarray[21]|| kofferarray[17]==kofferarray[22]||kofferarray[17]==kofferarray[23]|| kofferarray[17]==kofferarray[24]||kofferarray[17]==kofferarray[25]|| kofferarray[18]==kofferarray[19]|| kofferarray[18]==kofferarray[20]||kofferarray[18]==kofferarray[21]|| kofferarray[18]==kofferarray[22]||kofferarray[18]==kofferarray[23]|| kofferarray[18]==kofferarray[24]||kofferarray[18]==kofferarray[25]|| kofferarray[19]==kofferarray[20]||kofferarray[19]==kofferarray[21]|| kofferarray[19]==kofferarray[22]||kofferarray[19]==kofferarray[23]|| kofferarray[19]==kofferarray[24]||kofferarray[19]==kofferarray[25]|| kofferarray[20]==kofferarray[21]|| kofferarray[20]==kofferarray[22]||kofferarray[20]==kofferarray[23]|| kofferarray[20]==kofferarray[24]||kofferarray[20]==kofferarray[25]|| kofferarray[21]==kofferarray[22]||kofferarray[21]==kofferarray[23]|| kofferarray[21]==kofferarray[24]||kofferarray[21]==kofferarray[25]|| kofferarray[22]==kofferarray[23]|| kofferarray[22]==kofferarray[24]||kofferarray[22]==kofferarray[25]|| kofferarray[23]==kofferarray[24]||kofferarray[23]==kofferarray[25]|| kofferarray[24]==kofferarray[25]);ich hoffe, es gibt eine einfachere Variante ... und eine die keine Endlosschleife liefert

P.S Ja, ich hatte Zeit ...
MfG Disi
-
Omfg Oo
Wie wäre es mit zwei ineinander verschachtelten while-schleifen?
Oder du prüfst gleich beim erzeugen das array durch, das wär wohl performanter.
-
auweia...
for(int i=0;i<24;i++) kofferarray[i]= i; random_shuffle(kofferarray, kofferarray+25);stl-Algorithmen lassen grüßen...
Es gibt übrigens 25! Möglichkeiten, die zahlen 1-25 auf das Array zu verteilen, und (25)^25 Möglichkeiten, in jedes Element eine Zahl von 1-25 einzusetzen - du hast also eine chance von ca. , auf deine Art eine richtige Füllung zu kriegen. Nach der stirlingschen Formel ist 25! ca
und damit
-
Hier arbeitet man am besten mit Loop Kaskaden
Die entsprechende hussy-Funktion gestaltet sich wie folgt:
int* hussy(unsigned int s) { srand(time(0)); unsigned int m=s; int* nn = new int[s]; switch(--s) { while(s+1) { default: s[nn]=s--; continue; } case 0: break; } unsigned int i(++s); switch(s) { for(;i<m;i++) { case 0: int lol=i[nn]; int r= rand()%m; i[nn]=nn[r];r[nn]=lol; } default:return nn; } return nn; } int main () { unsigned int zolo = 14; int* daA = hussy(zolo); for(int i=0;i<zolo;i++) std::cout<<i[daA]<<std::endl; delete [] daA; return 0; }
-
Hmm stl-alg. kenn ich nicht .. bin noch "neuling" ^^
Öhm muss ich noch eine Libary einbinden ? Er sagt mir:
"Aufruf einer undefinierten Funktion 'random_shuffle'"was meinst du mit verschachtelten while-Schleifen Kenny ?
Aber schonmal danke für die Tips.
MfG Disi
-
random_shuffle befindet sich im header <algorithm>
-
So in etwa:
#include <algorithm> // für std::random_shuffle const unsigned int MY_ARRAY_SIZE = 25; int main() { int myArray[MY_ARRAY_SIZE]; for (int i = 0; i < MY_ARRAY_SIZE; ++i) myArray[i] = i; std::random_shuffle(myArray, myArray + MY_ARRAY_SIZE); return 0; }
-
Danke an alle, die geantwortet haben!
ich habe mich für die Lösung von Don entschieden, da ich sie verstanden habe und es wesentlich weniger zu schreiben ist...
Hat auch alles geklappt...
MfG Disi
-
Die andere Lösung ist ja auch ein Trollbeitrag.
-
Ja, aber meine ist gut.
-
Vielen Danck C++ Obfuscator!