PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 2-dimensionales array zufällig durchlaufen



rugaaaaa
13-11-2007, 18:07
Hallo,

ich hab ein Problem...

wie kann ich mein 2-dimensionales array: test[100][100] zufällig durchlaufen.... (es soll jedes Feld genau einmal durchlaufen werden... also genau einmal und nicht öfters...)

bisher laufe ich noch Feldweise durch mein Array...

for (y=0;y<100; y++)
for ( n=0; n<100 ; n++)
{
test[y][n]


Viele Grüße

Ruga

Treehouse
13-11-2007, 21:09
Hallo

Ich würde es so machen das ich mir mit der Funktion srand und den Werten x, y aus den for-loops zwei Zufallszahlen generieren lasse, zb a und b. Diese würde ich einfach in das Array einsetzen.

Also:
test[a][b]

Natürlich muss du darauf achten das die mit srand erzeugten Zahlen dann in deinem Fall alle unter 100 liegen.

BLUESCREEN3D
15-11-2007, 14:06
Wenn jedes Feld nur einmal durchlaufen werden soll, musst du erstmal eine Liste aller Felder anlegen.
Dann zufällig eins aus der Liste raussuchen, aus der Liste löschen und im Array besuchen. So lange, bis die Liste leer ist.

Eselchen
15-11-2007, 17:59
Du kannst

random_shuffle(feld, &feld[n], neues_feld);

verwenden und dann das neue Feld durchlaufen. Das Problem dabei ist, dass alle Werte kopiert werden.