Gjenerator numrash të rastësishëm
Shpërndarja e rezultateve
Testi i uniformitetit
Hidhni më shumë numra në një interval më të ngushtë për ta kryer testin.
Shortet e fundit
Cilësime të ruajtura
Si funksionon Gjeneratori i Numrave të Rastësishëm?
Gjeneratori ju ofron dy burime rastësie, dhe ju zgjidhni cilin t’i përshtatet nevojës.
Rastësia e sigurt merr entropi nga sistemi juaj operativ përmes Web Crypto API (crypto.getRandomValues()). Është e paparashikueshme dhe e papersëritshme — zgjedhja e duhur për një short të vërtetë ku askush nuk duhet të mund ta hamendësojë rezultatin paraprakisht.
Me seed kthen çdo tekst që shkruani në një gjendje fillestare për një gjenerator determinist (xoshiro128**). E njëjta seed prodhon gjithmonë të njëjtët numra, kështu që kushdo mund të riprodhojë shortin tuaj dhe të konfirmojë se e keni marrë atë që thoni se e keni marrë.
Të dyja funksionojnë plotësisht në shfletuesin tuaj. Asnjë numër nuk arrin kurrë në një server.
Pa bias moduli
Shumica e gjeneratorëve të thjeshtë hartëzojnë një vlerë 32-bit të rastësishme në intervalin tuaj me value % range. Kur intervali nuk e ndan në mënyrë të barabartë 2³²-shin, numrat më të ulët shfaqen pak më shpesh se të tjerët. Në mijëra hedhje, kjo është e matshme.
Ky gjenerator përdor rejection sampling në vend të kësaj: vlerat që do të binin në bishtin e pabarabartë hidhen dhe rihidhen. Çdo numër në intervalin tuaj ka saktësisht të njëjtën shans. Mund ta verifikoni vetë me testin e integruar të uniformitetit.
Çfarë mund të bëjë gjeneratori
Intervali
- Minimumi dhe maksimumi — çdo interval numrash të plotë ose dhjetorë, përfshirë vlerat negative
- Sa numra — nga 1 deri në 1.000.000 në një hedhje
- Pa përsëritje — çdo numër shfaqet më së shumti një herë, ashtu si në një short të vërtetë
- Renditja — sipas radhës së hedhjes, në rritje, ose në rënie; renditja nuk prek kurrë rastësinë
- Hapi — kufizoni rezultatet në shumëfisha të një vlere, kështu që shfaqen vetëm 0, 5, 10, 15
- Përjashtoni numra — listoni vlera që nuk duhet të hidhen kurrë
Mënyra
- Burimi i rastësisë — e sigurt (Web Crypto) ose me seed (e riprodhueshme)
- Seed — çdo tekst; e njëjta seed riprodhon gjithmonë të njëjtin short
- Shpërndarja — uniforme, normale (Gausiane), eksponenciale, Poisson, trekëndore, binomiale
- Pesha — jepini numrave të zgjedhur një shans më të lartë, shkruar si
number:weight - Notacioni i zareve —
3d6+2,d20,2d20kh1për avantazh,4d6dl1për hedhjen e statistikave
Rezultati
- Ndarësi — presje, hapësirë, pikëpresje, tab, rresht i ri, ose çfarëdo që shkruani
- Sistemi numerik — dhjetor, binar, oktal, heksadecimal, ose bazë 36
- Mbushje me zero — ktheni 7 në 007 për numra biletash ose ID
- Prefiks dhe sufiks — mbështillni çdo numër me tekst fiks
- Shabllon —
{n}është numri,{i}pozicioni i tij, kështu qëuser{n}bëhetuser42 - Kopjo si — tekst i thjeshtë, CSV, JSON, ose tabelë Markdown
Statistika
Çdo hedhje përmblidhet live: shuma, mesatarja, mediana, më e ulëta, më e larta, devijimi standard, plus sa rezultate janë çift, tek, ose numra të thjeshtë (prim). Një histogram tregon formën e shpërndarjes, dhe një test chi-katror ju thotë nëse rezultatet përputhen vërtet me një shpërndarje uniforme.
Historiku
50 hedhjet e fundit ruhen në shfletuesin tuaj, së bashku me cilësimet që i kanë prodhuar — një klikim rikthen secilën prej tyre. Konfigurimet që përdorni shpesh mund të ruhen si paracaktime të emërtuara, dhe e gjithë grupi eksportohet në një skedar JSON që mund ta importoni në një pajisje tjetër. Asgjë nuk ruhet askund përveç këtij shfletuesi.
Tastiera
Shtypni Space ose R për të hedhur përsëri pa e zënë miun.
Paracaktime të shpejta
| Paracaktimi | Intervali | Numri | Përdorimi |
|---|---|---|---|
| 🎲 Zar | 1–6 | 1 | Lojëra tavoline, vendimmarrje |
| 🪙 Monedhë | 0–1 | 1 | Kokë ose pilë |
| 🎰 Lloto | 1–49 | 6 | Unike, të renditura, si një short i vërtetë |
| 💯 1–100 | 1–100 | 1 | Përqindje, ndarje A/B |
| 🔢 PIN | 0–9 | 4 | Katër shifra, përsëritjet të lejuara |
Hedhje të riprodhueshme
Mënyra me seed ekziston për momentet kur “më besoni, ishte e rastësishme” nuk mjafton.
Zgjidhni një seed që të gjithë mund ta pranojnë paraprakisht — një datë, një hashtag, çmimi i mbylljes së diçkaje publike — dhe njoftojeni para se të hidhni. Kushdo mund të shkruajë më pas të njëjtën seed me të njëjtat cilësime dhe të marrë të njëjtin rezultat identik. Nuk keni provuar se numrat ishin të paparashikueshëm; keni provuar se nuk keni rihedhur derisa ju pëlqeu përgjigjja.
Kjo është gjithashtu mënyra si e bëni rastësinë të riprodhueshme në punë që duhet kontrolluar: një plan mostrimi që një koleg mund ta rihedhë, një grup fiksturash testimi që qëndron i qëndrueshëm gjatë një suite testesh, një ushtrim në klasë ku çdo nxënës merr të njëjtat të dhëna “të rastësishme”.
Zgjedhja e një shpërndarjeje
Uniforme i jep çdo numri në interval të njëjtën shans. Kjo është zakonisht çfarë njerëzit nënkuptojnë me “të rastësishëm”, dhe është parazgjedhja.
Të tjerat i grupojnë rezultatet rreth një vlere, çka është ajo që sasitë e botës reale priren të bëjnë:
- Normale (Gausiane) — gjatësi, gabime matjeje, rezultate testesh. Vendosni një mesatare dhe një devijim standard.
- Eksponenciale — kohë pritjeje midis ngjarjeve të pavarura.
- Poisson — numërime ngjarjesh në një interval fiks: mbërritje për orë, defekte për grup.
- Trekëndore — kur dini minimumin, maksimumin, dhe vlerën më të mundshme por asgjë tjetër. E zakonshme në vlerësimet e projekteve.
- Binomiale — sukseset nga një numër fiks provash me një probabilitet fiks.
Çdo shpërndarje kufizohet në intervalin që caktoni, kështu që një bisht i gjatë Gausian nuk mund t’i shpëtojë minimumit dhe maksimumit tuaj.
Ku përdoren numrat e rastësishëm
Lojëra dhe argëtim
- Lojëra tavoline — hedhja e zareve, radha e lojtarëve
- Lojëra RPG me tavolinë —
4d6dl1për atributet e personazheve,2d20kh1për avantazh - Shpërblime (giveaway) — zgjedhja e një fituesi, me një seed që pjesëmarrësit ta verifikojnë
- Kuize — radhë e rastësishme pyetjesh
Statistikë dhe shkencë
- Mostrimi — nxjerrja e një mostre nga një popullatë pa përsëritje
- Testimi A/B — ndarja e pjesëmarrësve në grupe
- Simulimi Monte Carlo — vlerësimi i probabilitetit përmes përsëritjes
- Bootstrapping — rimostrim për të vlerësuar pasigurinë
Zhvillim
- Të dhëna testimi — një milion vlera, gjeneruar në sfond që faqja të mbetet e përgjegjshme
- Fixtures — me seed, kështu që një test që dështon dështon njësoj dy herë
- ID të rastësishme — me mbushje, prefikse, ose shabllon
- Testim ngarkese — identifikues të shablluar si
user{n}@example.com
Numra vërtet të rastësishëm vs. pseudorastësorë
Math.random() | crypto.getRandomValues() | Me seed (xoshiro128**) | |
|---|---|---|---|
| Tipi | Pseudorastësor | I sigurt kriptografikisht | Pseudorastësor, determinist |
| Burimi i entropisë | Seed i zgjedhur nga motori | CSPRNG i sistemit | Teksti juaj i seed |
| I parashikueshëm? | Potencialisht | Jo | Po, me qëllim |
| I riprodhueshëm? | Jo | Jo | Gjithmonë |
| I mirë për siguri | Jo | Po | Jo |
| I mirë për statistikë | Varet | Po | Po |
| I mirë për hedhje të verifikueshme | Jo | Jo | Po |
Math.random() nuk përdoret askund në këtë mjet.
Hedhje pa përsëritje
Me Pa përsëritje të aktivizuar, çdo numër në interval shfaqet më së shumti një herë. Ideale për:
- Shpërblime (giveaway) — askush nuk mund të fitojë dy herë
- Permutacione — përzierja e një grupi elementesh
- Bingo — thirrja e numrave që mbeten të thirrur
- Lotari — gjashtë numra të dallueshëm nga 1 në 49
Hedhja përdor një shuffle të pjesshëm Fisher–Yates, kështu që kërkimi i 6 numrave nga një milion është po aq i shpejtë sa kërkimi i 6 numrave nga 49 — nuk kalon kurrë në lak duke shpresuar të shmangë një përplasje. Nëse kërkoni më shumë numra unikë sesa mund të japë intervali, gjeneratori ju njofton në vend që të ngrijë.
Eksportimi i rezultateve
Kopjoni numrat si tekst i thjeshtë me çfarëdo ndarësi që dëshironi, si CSV për një fletëllogaritëse, si JSON për kod, ose si tabelë Markdown për dokumentacion. Hedhjet shumë të mëdha mbeten të plota në memorie dhe kopjohen të plota, edhe pse në ekran shfaqen vetëm mijëra e para.
Gjenerimi i numrave të rastësishëm në kodin tuaj
JavaScript / TypeScript
// Numër i plotë i sigurt kriptografikisht në [min, max], pa bias moduli.
// Metoda naive `value % range` favorizon numrat e ulët kur intervali
// nuk e ndan 2**32 në mënyrë të barabartë - prandaj hedhim poshtë
// vlerat në bishtin e pabarabartë.
function randomInt(min, max) {
const range = max - min + 1;
const limit = Math.floor(0x100000000 / range) * range;
const arr = new Uint32Array(1);
let value;
do {
crypto.getRandomValues(arr);
value = arr[0];
} while (value >= limit);
return min + (value % range);
}
Python
import random
import secrets
# I sigurt kriptografikisht, pa bias moduli
n = secrets.randbelow(max - min + 1) + min
# I riprodhueshëm: e njëjta seed jep gjithmonë të njëjtën sekuencë
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Pa përsëritje
sample = random.sample(range(min, max + 1), count)
PHP
// I sigurt kriptografikisht (PHP 7+), pa bias moduli
$n = random_int($min, $max);
// I riprodhueshëm
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Pyetje të shpeshta (FAQ)
A është rezultati vërtet i rastësishëm?
Në mënyrën e sigurt, po. Vjen ngacrypto.getRandomValues(), një gjenerator i sigurt kriptografikisht i ushqyer nga pishina e entropisë së sistemit tuaj operativ. Rezultatet janë të shpërndara uniformisht dhe të paparashikueshme. Mënyra me seed është qëllimisht e kundërta: është e riprodhueshme, dhe kjo është pikërisht qëllimi i saj.
Sa numra mund të gjeneroj njëherësh?
Deri në 1.000.000. Hedhjet mbi 50.000 llogariten në një worker në sfond që faqja të mbetet e përgjegjshme, dhe ekrani shfaq 2.000 e para me numrin e pjesës tjetër — kopjimi ju jep gjithsesi gjithçka.A mund të gjeneroj numra negativë?
Po. Vendosni një minimum negativ. Funksionon i gjithë intervali i numrave JavaScript, përfshirë intervale negative në të dyja skajet.A ndikon renditja në rastësinë?
Jo. Numrat hidhen fillimisht dhe renditen më pas. Renditja ndryshon vetëm rendin në të cilin i shihni.A do të japë e njëjta seed të njëjtët numra nesër?
Po, dhe në çdo pajisje ose shfletues tjetër. Gjeneratori me seed është plotësisht determinist dhe nuk varet nga asgjë përveç seed-it dhe cilësimeve tuaja.Çfarë më thotë testi i uniformitetit?
Kryen një test chi-katror që krahason sa herë ka dalë në të vërtetë çdo numër me sa herë duhej të dilte. Nëse statistika mbetet nën vlerën kritike, rezultatet janë në përputhje me një shpërndarje uniforme. Kërkon një interval mjaftueshëm të ngushtë dhe hedhje të mjaftueshme — të paktën pesë për çdo vlerë të mundshme — për të thënë diçka kuptimplote.Si funksionojnë peshat?
Shkruajini si çiftenumber:weight, për shembull 1:5, 2:1, 3:1. Këtu 1-shi ka pesë herë më shumë gjasa sesa 2-shi ose 3-shi. Numrave që nuk i listoni u jepet peshë zero dhe nuk hidhen kurrë.
Çfarë notacioni zaresh mbështetet?
3d6 hedh tre zare gjashtëfaqësh. Shtoni një modifikues me 3d6+2. Mbani ose hidhni zare me kh, kl, dh, dl — kështu 2d20kh1 mban më të lartin e dy d20-ve (avantazh) dhe 4d6dl1 hedh më të ultin e katër d6-ve.