Ezt a java függvényt hogy kellene úgy módosítani, hogy CSAK a sorokat kavarja össze?
Tehát hogy csak a sorokat keverje össze egymás között, mintha az összes oszlop "egyben" mozogna a sorával.
Ez a jelenlegi mindent összekever mindennel... :S
You can use Fisher–Yates algorithm modified for two-dimensional arrays:
void shuffle(int[][] a) {
Random random = new Random();
for (int i = a.length - 1; i > 0; i--) {
for (int j = a[i].length - 1; j > 0; j--) {
int m = random.nextInt(i + 1);
int n = random.nextInt(j + 1);
int temp = a[i][j];
a[i][j] = a[m][n];
a[m][n] = temp;
}
}
}
Elég ismeretlen még számomra az algoritmizálás világa, most tanulom.
Találtam a neten egy ilyen megoldást, ami majdnem jó a problémára, de módosítani kell, ami még nekem egyenlőre nem megy úgy, hogy jó megoldás szülessen.
Ezért kértem segítséget, mert aki ért hozzá, annak ez a pár módosítás ránézésre megvan...
Nem a nulláról kértem, hogy írja meg valaki, hanem csak módosítani kellene ezt a mostani majdnem jó megoldást...
Köszi :)
Feltételezem az indexelés ilyen: a[sor][oszlop]. Nem kell két ciklus elég egy is.
Random random = new Random();
for (int i = a.length - 1; i > 0; i--) {
int m = random.nextInt(i + 1);
int[] temp = a[i];
a[i] = a[m];
a[m] = temp;
}
Mi a célod? Ha az algoritmizálás eltanulása, akkor nem biztos, hogy az a jó, ha ilyen egyszerű algoritmust úgy oldasz meg, hogy töltesz netről valami hasonlót és elkezdet foltozgatni.
Bonyolult API-s cuccnál oké, de amikor két for ciklusról van szó, és tanulna az ember, akkor jobb, ha magától írja 0-ról.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!