Juhuslike arvude generaator
Tulemuste jaotus
Ühtluse test
Testi käivitamiseks looge rohkem numbreid kitsamas vahemikus.
Viimased loosimised
Salvestatud valikud
Kuidas juhuslike arvude generaator töötab?
Generaator pakub teile kahte juhuslikkuse allikat ning te valite, kumb sobib teie ülesandeks.
Turvaline juhuslikkus ammutab entroopiat teie operatsioonisüsteemist Web Crypto API kaudu (crypto.getRandomValues()). See on ettearvamatu ja korratamatu — õige valik päris loosimiseks, kus keegi ei tohiks tulemust ette ära arvata.
Seemnega režiim muudab suvalise sisestatud teksti deterministliku generaatori (xoshiro128**) lähteolekuks. Sama seeme annab alati samad numbrid, nii et igaüks saab teie loosimise korrata ja kinnitada, et saite täpselt selle, mida väitsite.
Mõlemad töötavad täielikult teie brauseris. Ühtegi numbrit ei jõua kunagi serverisse.
Ei mingit modulo-nihet
Enamik lihtsaid generaatoreid kaardistab juhusliku 32-bitise väärtuse teie vahemikku valemiga value % range. Kui vahemik ei jagu 2³²-ga ühtlaselt, esinevad väiksemad numbrid veidi sagedamini kui ülejäänud. Tuhandete loosimiste peale on see mõõdetav.
See generaator kasutab selle asemel tagasilükkamisel põhinevat valimit: väärtused, mis langeksid ebaühtlasesse sappa, visatakse minema ja loositakse uuesti. Igal numbril teie vahemikus on täpselt sama tõenäosus. Saate seda ise kontrollida sisseehitatud ühtluse testiga.
Mida generaator oskab
Vahemik
- Miinimum ja maksimum — suvaline täisarvu- või kümnendvahemik, negatiivsed väärtused kaasa arvatud
- Numbrite arv — 1 kuni 1 000 000 ühe loosimise kohta
- Kordusteta — iga number esineb kõige rohkem üks kord, nii nagu päris loosimisel
- Sorteerimine — loosimisjärjekord, kasvavalt või kahanevalt; sorteerimine ei mõjuta juhuslikkust
- Samm — piirake tulemused väärtuse kordsetega, nii et välja tulevad ainult näiteks 0, 5, 10, 15
- Numbrite väljajätmine — loetlege väärtused, mida ei tohi kunagi loosida
Režiim
- Juhuslikkuse allikas — turvaline (Web Crypto) või seemnega (korratav)
- Seeme — suvaline tekst; sama seeme kordab alati sama loosimist
- Jaotus — ühtlane, normaal- (Gaussi), eksponentsiaal-, Poissoni, kolmnurkne, binoomjaotus
- Kaalud — andke valitud numbritele suurem tõenäosus, kirjutatuna kujul
number:weight - Täringunotatsioon —
3d6+2,d20,2d20kh1eelise jaoks,4d6dl1omaduste veeretamiseks
Väljund
- Eraldaja — koma, tühik, semikoolon, tabeldusmärk, reavahetus või suvaline sisestatud tekst
- Numbrisüsteem — kümnend-, kahend-, kaheksand-, kuueteistkümnendsüsteem või alus 36
- Nullidega täitmine — muutke 7 kujuks 007 pileti- või ID-numbrite jaoks
- Eesliide ja järelliide — mähkige iga number fikseeritud teksti sisse
- Mall —
{n}on number,{i}selle positsioon, nii etuser{n}muutub kujuksuser42 - Kopeeri kujul — lihttekst, CSV, JSON või Markdown-tabel
Statistika
Iga loosimine võetakse reaalajas kokku: summa, keskmine, mediaan, väikseim, suurim, standardhälve ning kui palju tulemusi on paaris-, paaritu- või algarvud. Histogramm näitab jaotuse kuju ning hii-ruut test ütleb, kas tulemused vastavad tegelikult ühtlasele jaotusele.
Ajalugu
Viimased 50 loosimist salvestatakse teie brauserisse koos seadetega, mis need tekitasid — ühe klikiga saab taastada mistahes neist. Sageli kasutatavad seadistused saab salvestada nimeliste eelseadistustena ning kogu komplekti saab eksportida JSON-failina, mida saab importida teise masinasse. Midagi ei salvestata kuhugi mujale peale selle brauseri.
Klaviatuur
Vajutage tühikut või R, et loosida uuesti ilma hiireni sirutamata.
Kiirvalikud
| Valik | Vahemik | Arv | Kasutus |
|---|---|---|---|
| 🎲 Täring | 1–6 | 1 | Lauamängud, otsustamine |
| 🪙 Münt | 0–1 | 1 | Kull või kiri |
| 🎰 Loterii | 1–49 | 6 | Ainulaadne, sorteeritud, nagu päris loosimine |
| 💯 1–100 | 1–100 | 1 | Protsendid, A/B jaotused |
| 🔢 PIN | 0–9 | 4 | Neli numbrit, kordused lubatud |
Korratavad loosimised
Seemnega režiim on olemas hetkedeks, mil “usalda mind, see oli juhuslik” ei ole piisav.
Valige seeme, milles kõik saavad eelnevalt kokku leppida — kuupäev, teemaviide, mõne avaliku asja sulgemishind — ja teatage see enne loosimist. Igaüks saab seejärel sisestada sama seemne samade seadetega ja saada identse tulemuse. Te ei ole tõestanud, et numbrid olid ettearvamatud; te olete tõestanud, et te ei loosinud uuesti seni, kuni tulemus meeldis.
Nii tehakse juhuslikkus korratavaks ka töös, mida peab olema võimalik kontrollida: valimiplaan, mida kolleeg saab uuesti käivitada, testfixture’ite kogum, mis püsib stabiilsena kogu testikomplekti vältel, klassiharjutus, kus iga õpilane saab sama “juhusliku” andmestiku.
Jaotuse valimine
Ühtlane annab igale vahemiku numbrile sama tõenäosuse. Seda mõeldakse tavaliselt juhuslikkuse all ja see on vaikevalik.
Ülejäänud koondavad tulemused väärtuse ümber, mida päriselu suurused kipuvad tegema:
- Normaal- (Gaussi) — pikkused, mõõtmisvead, testitulemused. Määrake keskmine ja standardhälve.
- Eksponentsiaal- — ooteajad sõltumatute sündmuste vahel.
- Poissoni — sündmuste arv fikseeritud ajavahemikus: saabumised tunnis, defektid partiis.
- Kolmnurkne — kui teate miinimumit, maksimumit ja kõige tõenäolisemat väärtust, kuid mitte midagi muud. Levinud projektihinnangutes.
- Binoom- — õnnestumiste arv fikseeritud arvu katsete puhul fikseeritud tõenäosusega.
Iga jaotus on lõigatud teie määratud vahemikku, nii et Gaussi pikk saba ei saa väljuda teie miinimumist ja maksimumist.
Kus juhuslikke numbreid kasutatakse
Mängud ja meelelahutus
- Lauamängud — täringuveeretused, käigujärjekord
- Lauarollimängud —
4d6dl1omaduste väärtuste jaoks,2d20kh1eelise jaoks - Loosimised — võitja valimine, seemnega, et osalejad saaksid seda kontrollida
- Viktoriinid — küsimuste juhuslik järjekord
Statistika ja teadus
- Valimi võtmine — valimi loosimine populatsioonist ilma kordusteta
- A/B testimine — osalejate jaotamine gruppidesse
- Monte Carlo simulatsioon — tõenäosuse hindamine kordamise teel
- Bootstrapping — uuesti valimine ebakindluse hindamiseks
Arendus
- Testandmed — miljon väärtust, genereeritud taustal, et leht püsiks reageerivana
- Fixture’id — seemnega, nii et ebaõnnestunud test ebaõnnestub kaks korda samamoodi
- Juhuslikud ID-d — täitmise, eesliidete või malliga
- Koormustestimine — mallipõhised identifikaatorid nagu
user{n}@example.com
Tõelised vs. pseudojuhuslikud numbrid
Math.random() | crypto.getRandomValues() | Seemnega (xoshiro128**) | |
|---|---|---|---|
| Tüüp | Pseudojuhuslik | Krüptograafiliselt turvaline | Pseudojuhuslik, deterministlik |
| Entroopia allikas | Mootori valitud seeme | Süsteemi CSPRNG | Teie seemnetekst |
| Ettearvatav? | Potentsiaalselt | Ei | Jah, disaini poolest |
| Korratav? | Ei | Ei | Alati |
| Sobib turvalisuse jaoks | Ei | Jah | Ei |
| Sobib statistika jaoks | Oleneb | Jah | Jah |
| Sobib kontrollitavate loosimiste jaoks | Ei | Ei | Jah |
Math.random() ei ole selles tööriistas kunagi kasutuses.
Loosimised ilma kordusteta
Valikuga Kordusteta sisse lülitatuna esineb iga vahemiku number kõige rohkem üks kord. Ideaalne:
- Loosimised — keegi ei saa võita kaks korda
- Permutatsioonid — esemete komplekti läbisegamine
- Bingo — juba väljakuulutatud numbrite korduv väljakuulutamine välistatud
- Loterii — kuus erinevat numbrit vahemikus 1 kuni 49
Loosimine kasutab osalist Fisher–Yatesi segamist, nii et 6 numbri küsimine miljonist on sama kiire kui 6 numbri küsimine 49-st — see ei tsükli kunagi lootuses vältida kattumist. Kui küsite rohkem unikaalseid numbreid, kui vahemik pakkuda suudab, ütleb generaator seda selgelt, selle asemel et kinni jääda.
Tulemuste eksportimine
Kopeerige numbrid lihttekstina suvalise eraldajaga, CSV-na tabelarvutusprogrammi jaoks, JSON-ina koodi jaoks või Markdown-tabelina dokumentatsiooni jaoks. Väga suured loosimised jäävad täies mahus mällu ja kopeeritakse täies mahus, kuigi ekraanile joonistatakse ainult esimesed paar tuhat.
Juhuslike numbrite genereerimine oma koodis
JavaScript / TypeScript
// Krüptograafiliselt turvaline täisarv vahemikus [min, max], ilma modulo-nihketa.
// Naiivne `value % range` eelistab väikseid numbreid, kui vahemik ei jagu
// 2**32-ga ühtlaselt - seetõttu lükkame ebaühtlasesse sappa jäävad väärtused tagasi.
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
# Krüptograafiliselt turvaline, ilma modulo-nihketa
n = secrets.randbelow(max - min + 1) + min
# Korratav: sama seeme annab alati sama jada
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Ilma kordusteta
sample = random.sample(range(min, max + 1), count)
PHP
// Krüptograafiliselt turvaline (PHP 7+), ilma modulo-nihketa
$n = random_int($min, $max);
// Korratav
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Korduma kippuvad küsimused (KKK)
Kas tulemus on tõeliselt juhuslik?
Turvalises režiimis jah. See tulebcrypto.getRandomValues()-st, krüptograafiliselt turvalisest generaatorist, mida toidab teie operatsioonisüsteemi entroopiaallikas. Tulemused on ühtlaselt jaotatud ja ettearvamatud. Seemnega režiim on teadlikult vastupidine: see on korratav, ja see ongi mõte.
Mitu numbrit saan korraga genereerida?
Kuni 1 000 000. Üle 50 000 loosimised arvutatakse taustaprotsessis, et leht püsiks reageerivana, ning ekraanil kuvatakse esimesed 2000 koos ülejäänute arvuga — kopeerimisel saate siiski kõik.Kas saan genereerida negatiivseid numbreid?
Jah. Määrake negatiivne miinimum. Töötab kogu JavaScripti numbrite vahemikuga, sealhulgas negatiivsete vahemikega mõlemas otsas.Kas sorteerimine mõjutab juhuslikkust?
Ei. Numbrid loositakse esmalt ja sorteeritakse alles seejärel. Sorteerimine muudab ainult järjekorda, milles te neid näete.Kas sama seeme annab homme samad numbrid?
Jah, ja igal teisel seadmel või brauseris samuti. Seemnega generaator on täielikult deterministlik ja sõltub ainult teie seemnest ja seadetest.Mida ütleb mulle ühtluse test?
See käivitab hii-ruut testi, mis võrdleb, kui tihti iga number tegelikult esines sellega, kui tihti see oleks pidanud esinema. Kui statistik jääb alla kriitilise väärtuse, on tulemused kooskõlas ühtlase jaotusega. Millegi mõistliku ütlemiseks on vaja mõistlikult kitsast vahemikku ja piisavalt loosimisi — vähemalt viis iga võimaliku väärtuse kohta.Kuidas kaalud töötavad?
Kirjutage need kujulnumber:weight paarid, näiteks 1:5, 2:1, 3:1. Siin on 1 viis korda tõenäolisem kui 2 või 3. Numbrid, mida te ei loetle, saavad kaalu null ega kuulu kunagi loosimisele.
Millist täringunotatsiooni toetatakse?
3d6 veeretab kolm kuuetahulist täringut. Lisage modifikaator kujul 3d6+2. Hoidke või jätke täringuid vahele kujul kh, kl, dh, dl — nii säilitab 2d20kh1 kahest d20-st suurema (eelis) ja 4d6dl1 jätab neljast d6-st välja väikseima.