zufällig Elemente aus der Liste löschen
-
Hi Leute,
Ich brauche Ihre Hilfe.
Ich habe eine Liste mit 16 Elementen.
{0,1,3,2,6,5,4,7,8,13,11,10,9,15, 12, 14)
Ich muss die zufällig mehrere Elemnten aus der Liste löschen.
Ich habe eine Varibale "number", die die Anzhal der zu löschenden Elementen zeigt.
z.Bnumber = 6;
-> Es müssen zufällig 6 Elemnten aus der Liste gelöscht werden.
Das Problem ist, wenn Ich so eine "for"-Schleife mache:
srand( (unsigned) time(NULL) ) ; for ( i =0; i < number; i++) { val = (rand()%16); printf ("%u\n", val); delete(val); }
Gibt die Datei manchmal gleiche Werte raus;
Z. B.:
number =4; i =0; val = 5; lösche(5); i =1; val = 4; lösche(4); i =2; val = 11; lösche(11); i =3; val = 5; lösche(5); --> Problem (Wiederholung)
Was kann Ich tun, damit es immer unterschiedliche Zahlen ausgegeben werden.
Im Voraus Vielen Dank
Lena
-
Noch mal würfeln, zB:
char war_schon_dran[16] = { 0 }; for (i=0; i<number;++i) { while (war_schon_dran[val = rand()%16]) ; war_schon_dran[val] = 1; /* ... */ }
Wenn number typischerweise nahe an der Feldgröße liegt, ist das zwar nicht mehr so günstig, aber hier reicht's allemal.