hogy ON is legyek, egy tényleges php-s kérdés:
van egy régebbi progim, ami lottószámokat generál (meg lehet adni hány számot kérsz, mettől meddig)
pl, 5 szám, 1-től 90-ig, és lesz egy véletlenszerűen generált 5 szám a kívánt tartományban.
most kíváncsiságból beletettem egy olyat, hogy hányadik próbálkozásra jönne ki újra ugyanaz a számsor (függetlenül a "húzás" sorrendjétől). és ha lefut a while ciklus a végén kiíratom hogy hányadik próbálkozásra lett ismét ugyanaz. (kvázi egy telitalálat)
ez kisebb számtartományban tökéletesen működik, tehát mondjuk 5 szám random, 1 és 10 között, mert van hogy 5-re van hogy 131. van hogy csak 652.-re kapom ugyanazt az először generált számsort.
viszont 1-90 között de akár 1-70 között is mindig 32768. próbálkozásra kapom vissza az először generált számsort.
nem értem hogy lehet ez, gondoltam hogy túlcsordul az változó, és ez a max értéke, de nem, mert növeltem egy $i változót 34000-ig while ciklussal, simán lehet, function-t is lehet meghívni ennyiszer. ki is írattam az 5 kihúzott számot és tényleg mindig a 32768. véletlen generálásra jön vissza ugyanaz, mint elsőnek.
hogy a szöszben lehet ez?
ezt a "véletlent" úgy állítom elő, hogy fogok egy tömböt, feltöltöm a számtartomány számaival, tehát 1-90-ig, majd shuffle függvénnyel összekeverem, és a tömb első 5 számát kiíratom (növekvő számsorrendben). és minden újrapróbálkozáskor ismétlődik ugyanez.
ennyi lenne a határa shuffle függvénynek? gyanús mert 32768 az pont 2^15-n.
[ Szerkesztve ]