Kas ir šis rīks?
Nejaušu skaitļu ģenerators izvēlas skaitļus no diapazona, kur katrai vērtībai ir vienāda iespēja. Cilvēki to izmanto, lai izlozētu loteriju un dāvanu uzvarētājus, nejauši sadalītu komandas, izvēlētos loterijas skaitļus, izveidotu nejaušus paraugus aptaujām, mestu palielinātus kauliņus spēlēm un pieņemtu objektīvus lēmumus.
Kvalitāte ir svarīgāka, nekā šķiet: naivi ģeneratori ir nedaudz noslieces uz diapazona daļām. Šis rīks izmanto crypto.getRandomValues(), pārlūka API, ko standartizējis W3C tīmekļa kriptogrāfijas specifikācija, kas pieprasa realizācijām "ģenerēt kriptogrāfiski stiprus nejaušus lielumus". Tas ir spēcīgāks garantijas veids nekā Math.random(), ko pārlūki tieši nepieprasa būt neprognozējamam vai bez novirzes. Kopā ar noraidošo izlasi (rejection sampling) — mācību grāmatas metodi diapazona novirzes novēršanai — katrs skaitlis izvēlētajā diapazonā beigās ir tieši tikpat iespējams kā jebkurš cits.
Kāpēc to izmantot?
- Jebkurš diapazons, ieskaitot negatīvus skaitļus, līdz 10 000 skaitļiem uzreiz.
- "Bez atkārtojumiem" režīms godīgām izlozēm — kā izvelkot numurētas bumbiņas no maisa.
- Iespējama kārtošana pārskatāmiem sarakstiem.
- Pierādāmi godīgs: kriptogrāfiski drošs un bez novirzes, piemērots reālām izlozēm.
- Privāts un uzreiz — ģenerēts tavā ierīcē, nekas netiek reģistrēts.
Kā to lietot
- Iestati minimumu un maksimumu (abi ieskaitot).
- Izvēlies, cik skaitļu tev vajag.
- Atzīmē "bez atkārtojumiem" izlozei bez atkārtojumiem un "kārtot", ja vēlies sakārtotu sarakstu.
- Noklikšķini "Ģenerēt skaitļus" — viens skaitlis parādās lielā izmērā, saraksti — pa rindiņai.
- Noklikšķini "Kopēt visu" sarakstiem.
Piemērs
Ievade
Min: 1, Max: 50, Skaits: 6, bez atkārtojumiem, sakārtotsIzvade
3
11
24
30
42
49Klasiska loterijas stila izloze: seši unikāli skaitļi no 1–50, sakārtoti.
Praktiski padomi
- Vajag sarakstu, nevis vienu skaitli? Iestati skaitu virs 1 — rīks izdrukā pa vienam skaitlim rindiņā, gatavu ielīmēšanai izklājlapas kolonnā.
- Met kauliņus galda spēlei vai galda RPG spēlei? Iestati min/max atbilstoši kauliņam (1–6, 1–20) un ģenerē vairākus metienus uzreiz, nevis atkārtoti spied "ģenerēt".
- Izlozē mazu aptaujas paraugu no numurēta 500 respondentu saraksta? Iestati diapazonu uz 1–500, ieslēdz "bez atkārtojumiem" un izvelc tik ID, cik vajag — neviens netiek izvēlēts divreiz.
- Viena uzvarētāja izvēle no kopas darbojas tāpat kā saraksta ģenerēšana: iestati skaitu uz 1 un diapazonu uz dalībnieku skaitu.
- Loterijas stila skaitļu ģenerēšanai (piemēram, 6 skaitļi no 1–49), "bez atkārtojumiem" plus kārtošana atspoguļo, kā reālas loterijas izlozes tiek nolasītas.
Nejaušs skaitlis pret nejaušu skaitļu sarakstu
Viens nejaušs skaitlis un nejaušu skaitļu saraksts nāk no viena un tā paša ģeneratora — vienīgā atšķirība ir pieprasītais skaits. Iestati skaitu uz 1, lai ģenerētu skaitli, vai palielini to, un tas kļūst arī par nejaušu skaitļu saraksta ģeneratoru, izdrukājot vienu vērtību rindiņā ērtai ielīmēšanai izklājlapā. Abi režīmi izmanto to pašu kriptogrāfiski drošo, bez novirzes avotu.
Ja tev vajag unikālus ID, nevis skaitļus izlozei, UUID ir labāka izvēle — tas veidots, lai nekad nesaskaņotos starp sistēmām, ne tikai vienā partijā.
Populāri diapazoni: 1-6, 1-10, 1-30, 1-100 un citi
Lielākajai daļai cilvēku vajag nejaušu skaitli vienā no dažiem klasiskiem diapazoniem, tāpēc rīkā ir vienas klikšķa iestatījumi tiem. 1–6 ir standarta kauliņa metiens (izmanto 1–20 galda RPG spēlēm); 1–8 un 1–30 bieži izmanto klases izvēlēm un mazām loterijām; 1–10 un 1–100 ir ikdienišķie "izvēlies skaitli" diapazoni; 1–1000 der lielākām kopām.
Katrs iestatījums ir tikai saīsne — tas aizpilda min un max un uzreiz ģenerē. Vajag nejaušu skaitli no 1 līdz 20, no 5 līdz 50 vai no -10 līdz 10? Ieraksti jebkuras robežas, tostarp negatīvus skaitļus. Abas robežas vienmēr ir iekļautas izlozē.
"Skaitļu randomizators" un "nejaušu skaitļu ģenerators" ir viens un tas pats: iestati diapazonu, noklikšķini ģenerēt, un iegūsti objektīvu izvēli. Atkārtotām izlozēm (piemēram, izsaucot bingo skaitļus no 1–90), ieslēdz "bez atkārtojumiem", lai katrs skaitlis tiktu izsaukts tikai vienreiz.
Biežāk uzdotie jautājumi
Vai skaitļi ir patiešām nejauši?
Tie nāk no crypto.getRandomValues(), tavas operētājsistēmas kriptogrāfiskā nejaušības avota, izmantojot noraidošo izlasi diapazona novirzes novēršanai. Izlozēm, spēlēm un paraugu ņemšanai tas ir tik godīgi, cik vien var būt. Ja tev konkrēti vajag nejaušību kriptogrāfiskām atslēgām vai autentifikācijas noslēpumiem, nevis izlozēm un spēlēm, izmanto specializētu paroļu vai atslēgu ģeneratoru — tas pats nejaušības avots, bet veidots citu prasību dēļ (garums, rakstzīmju kopas, nejauša reģistrēšana netiek pieļauta).
Vai min un max ir iekļauti rezultātos?
Jā, abas robežas ir ieskaitot. Diapazons 1–10 var iedot gan 1, gan 10.
Ko tieši dara "bez atkārtojumiem"?
Katrs skaitlis diapazonā var parādīties ne vairāk kā vienreiz, līdzīgi kā izvelkot numurētas bumbiņas no maisa, neieliekot atpakaļ. Skaits tāpēc nevar pārsniegt diapazona lielumu — rīks par to informēs, ja tā notiek.
Vai varu izmantot šo, lai godīgi izlozētu dāvanu uzvarētāju?
Jā. Sanumurē dalībniekus no 1 līdz N, ģenerē vienu skaitli šajā diapazonā, un rezultāts būs objektīva izvēle. Vairākiem uzvarētājiem izmanto "bez atkārtojumiem", lai neviens neuzvarētu divreiz.
Kāpēc manā sarakstā divreiz parādījās viens un tas pats skaitlis?
Bez "bez atkārtojumiem" katra izloze ir neatkarīga — atkārtojumi ir normāli un patiesībā apliecina īstu nejaušību (kauliņš var uzkrist ar vienu vērtību divreiz). Ieslēdz "bez atkārtojumiem", ja tev vajag katru skaitli tikai vienreiz.
Kā ģenerēt nejaušu skaitli no 1 līdz 100?
Noklikšķini uz 1–100 iestatījuma (vai iestati Min uz 1 un Max uz 100) un nospied "Ģenerēt skaitļus". Katram veselajam skaitlim no 1 līdz 100 ir tieši 1 no 100 iespēja. Tas pats darbojas jebkuram diapazonam — 1 līdz 10, 1 līdz 30, 1 līdz 1000 vai pielāgotas robežas.
Vai ar šo var mest kauliņu (nejaušs skaitlis 1-6)?
Jā — izmanto 1–6 (kauliņš) iestatījumu. Vairākiem kauliņiem uzreiz palielini skaitu: piemēram, skaits 4 ar diapazonu 1–6 met četrus kauliņus vienā klikšķī. D20 kauliņam iestati diapazonu 1–20.
Kā izpildīt nejaušu skaitļu izlozi, piemēram, bingo vai loteriju?
Iestati diapazonu uz visu savu kopu — 1–90 bingo, 1 līdz biļešu skaitam loterijai — ieslēdz "bez atkārtojumiem" un ģenerē visu sarakstu uzreiz. Šī saraksta nolasīšana secībā matemātiski ir tas pats, kas skaitļu izvilkšana pa vienam, neieliekot atpakaļ, tikai ātrāk.