Atsitiktinių skaičių generatorius
Generuokite vieną ar daugiau atsitiktinių skaičių bet kokiame intervale. Sveikuosius ar dešimtainius, unikalius ar su pasikartojimais, su neprivaloma atkartojama sėkla.
Generatoriaus nustatymai
Atnaujinama, kol rašotePavyzdžiai
Kaip tai veikia
Sveikųjų skaičių generavimui naudojama atmetimo imtis, kuri pašalina modulinį iškreipimą. Naivus
val % range yra šiek tiek iškreiptas, kai neapdorota atsitiktinė erdvė nėra tolygiai dalinama iš intervalo — todėl reikšmės, viršijančios didžiausią švarų intervalo kartotinį, atmetamos ir imamos iš naujo. Rezultatas: tobulai tolygus skirstinys.Unikalus režimas naudoja dvi strategijas pagal tankį. Kai skaičius artimas intervalui (pvz., 6 iš 1–49), sudaromas visas pool'as ir atliekamas Fišerio–Jeitso maišymas. Kai intervalas daug didesnis už skaičių, traukiama toliau, praleidžiant jau matytas reikšmes. Unikalumo sąlyga reikalauja, kad sveikųjų intervale būtų bent tiek reikšmių, kiek prašai.
Neprivaloma sėkla pakeičia CSPRNG deterministiniu PRNG (mulberry32). Esant toms pačioms įvestims ir tai pačiai sėklai, seka kiekvieną kartą identiška — naudinga atkartojamoms demonstracijoms, testų duomenims ir bendrinamoms nuorodoms. Palikite sėklą tuščią tikram atsitiktinumui.
Patarimai ir geroji praktika
Dažniausiai užduodami klausimai
Ar tai kriptografiškai saugu?
Kai sėklos laukas tuščias — taip. Išvestis gaunama iš naršyklės crypto.getRandomValues(), kuris tinka kriptografiniam naudojimui. Jei nustatote sėklą, išvestis tampa determinuota ir NĖRA saugi: kas žino sėklą, gali atkartoti seką.
Kuo skiriasi režimas su sėkla ir be sėklos?
Be sėklos traukiama CSPRNG — kiekvienas metimas nepriklausomas ir neprognozuojamas. Su sėkla naudojamas deterministinis PRNG (mulberry32): ta pati sėkla ir nustatymai visada duoda tą pačią seką — to ir reikia atkartojamoms demonstracijoms, testams ar bendrinamoms nuorodoms.
Kodėl negaliu sugeneruoti 100 unikalių skaičių iš 1–10?
Intervale yra tik 10 skirtingų sveikųjų, todėl matematiškai neįmanoma ištraukti 100 unikalių reikšmių. Arba sumažinkite skaičių iki 10 ar mažiau, arba išplėskite intervalą iki bent skaičiaus dydžio.
Ar rūšiavimo parinktis veikia atsitiktinumą?
Ne. Rūšiavimas pertvarko jau sugeneruotus skaičius; jis nekeičia, kokie skaičiai buvo ištraukti. Atsitiktinis procesas vyksta pirmas, rūšiavimas — po to.
Kokio dydžio partiją galiu sugeneruoti?
Iki 10 000 skaičių vienu metu. Labai didelės lentelės vaizduojamos slenkamoje srityje, o skirstinio histograma darosi prasmingesnė augant imčiai.