A véletlenszerűség lehetséges?
Úgy értem, hogy mondjuk Zenelejátszóban (Mobil, MP4 stb)
van olyan lehetőség hogy Shuffle.
az a véletlen szerű lejátszás.
mi szerint rakja sorrendbe a számokat?
biztos nem lehet véletlen.
valamilyen algoritmusnak kell lennie.
válaszokat előre is köszi :)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
Kongruencia generátorral csinálják. Egy kezdőértéket kap az algoritmus, ennek az értéknek általában az aktuális időhöz van köze, hogy változzon, aztán az algoritmussal lehet generálgatni.
És valóban nem véletlen, egy idő után ismétlődik a sorozat.
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
A mai randomgenerátorok elég jók szoktak lenni, meglehetősen egyenletes eloszlással és nagyon hosszú sorozatokkal dolgoznak, azaz milliós nagyságrendű számkérés után kezd el ismétlődni. A valódi véletlenek sokkal kevésbé szabályosak.
Tehát valamilyen algoritmus van mögötte. Itt van válasz és link is:
http://www.gyakorikerdesek.hu/tudomanyok__alkalmazott-tudoma..
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz2.png)
![*](http://static.gyakorikerdesek.hu/p/vsz1.png)
![*](http://static.gyakorikerdesek.hu/p/vsz0.png)
private final static long multiplier = 0x5DEECE66DL;
private final static long addend = 0xBL;
private final static long mask = (1L << 48) - 1;
public Random() { this(++seedUniquifier + System.nanoTime()); }
private static volatile long seedUniquifier = 8682522807148012L;
public Random(long seed) {
this.seed = new AtomicLong(0L);
setSeed(seed);
}
protected int next(int bits) {
long oldseed, nextseed;
AtomicLong seed = this.seed;
do {
oldseed = seed.get();
nextseed = (oldseed * multiplier + addend) & mask;
} while (!seed.compareAndSet(oldseed, nextseed));
return (int)(nextseed >>> (48 - bits));
}
Ennyi az egész. Forrás a java 1.6 Random.java
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!