( mhmxs | 2012. 03. 29., cs – 18:35 )

Magamat tudnám idézni, amíg a range nagyobb, mint a generálandó darabszám, és a generált random számba beszámít az aktuális idő, előbb utóbb lefut. Lehet, hogy 100 ms, lehet, hogy 10 év, de _nem végtelen_. Az pedig már az üzleti logika része, hogy mennyi idő a releváns a feladatra. Az 5ös lottóban _mindig_ 5 számot sorsolnak!!! Amíg ez az üzleti modell, jöhettek nekem a matematikai valószínűségi számításaitokkal, 5 rohad szám kell. Ha az üzleti logika mást diktál, és a jelen feladat nem specifikált mást, akkor lehet vele játszani, lehet másik szálba rakni, lehet a while-ba más ellenőrzést is beletenni, stb.,stb., a konkrét feladatra ez egy jó megoldás. A példa amire reflektáltam pedig szintén hibás, mert ha 9999999999 * 10^999999-on számból kell 2-őt kiválasztani, akkor nem lesz annyi ram a gépbe, amibe a List elfér :).
-
Könyvajánló: Java fejtörők