Gadījuma skaitļu ģenerators tiešsaistē
Rezultātu sadalījums
Vienmērīguma tests
Lai veiktu testu, izlozējiet vairāk skaitļu šaurākā diapazonā.
Pēdējās izlozes
Saglabātie iestatījumi
Kā darbojas gadījuma skaitļu ģenerators?
Ģenerators piedāvā divus nejaušības avotus, un jūs izvēlaties, kurš der jūsu uzdevumam.
Drošā izloze iegūst entropiju no jūsu operētājsistēmas, izmantojot Web Crypto API (crypto.getRandomValues()). Tā ir neparedzama un neatkārtojama — pareizā izvēle reālai izlozei, kurā nevienam nedrīkst būt iespējas iepriekš uzminēt rezultātu.
Ar sēklu pārvērš jebkuru jūsu ievadīto tekstu par sākuma stāvokli deterministiskam ģeneratoram (xoshiro128**). Viena un tā pati sēkla vienmēr dod tos pašus skaitļus, tāpēc jebkurš var atkārtot jūsu izlozi un pārliecināties, ka rezultāts atbilst apgalvotajam.
Abi režīmi darbojas pilnībā jūsu pārlūkprogrammā. Neviens skaitlis nekad nenonāk serverī.
Bez moduļa novirzes (modulo bias)
Lielākā daļa vienkāršo ģeneratoru attēlo nejaušu 32 bitu vērtību jūsu diapazonā, izmantojot value % range. Ja diapazons nedalās vienmērīgi ar 2³², zemākie skaitļi parādās nedaudz biežāk nekā pārējie. Pēc tūkstošiem izložu šī novirze ir izmērāma.
Šis ģenerators tā vietā izmanto noraidīšanas izlasi (rejection sampling): vērtības, kas iekristu nevienmērīgajā “astē”, tiek atmestas un izvilktas no jauna. Katram skaitlim jūsu diapazonā ir tieši vienādas izredzes. To varat pārbaudīt paši, izmantojot iebūvēto vienmērīguma testu.
Ko ģenerators prot
Diapazons
- Minimums un maksimums — jebkurš vesels vai decimāls diapazons, ieskaitot negatīvas vērtības
- Cik skaitļu — no 1 līdz pat 1 000 000 vienā izlozē
- Bez atkārtojumiem — katrs skaitlis parādās ne vairāk kā vienu reizi, tāpat kā reālā izlozē
- Kārtošana — izlozes secība, augoša vai dilstoša; kārtošana nekad neietekmē nejaušību
- Solis — ierobežot rezultātus līdz vērtības daudzkārtņiem, lai izkristu tikai, piemēram, 0, 5, 10, 15
- Izslēgt skaitļus — uzskaitiet vērtības, kuras nekad nedrīkst tikt izlozētas
Režīms
- Nejaušības avots — drošs (Web Crypto) vai ar sēklu (atkārtojams)
- Sēkla — jebkurš teksts; viena un tā pati sēkla vienmēr atkārto to pašu izlozi
- Sadalījums — vienmērīgs, normālais (Gausa), eksponenciālais, Puasona, trijstūrveida, binomiālais
- Svari — piešķiriet izvēlētiem skaitļiem lielākas izredzes, pierakstot kā
number:weight - Kauliņu apzīmējumi —
3d6+2,d20,2d20kh1priekšrocībai (advantage),4d6dl1raksturlielumu metšanai
Izvade
- Atdalītājs — komats, atstarpe, semikols, tabulēšana, jauna rinda vai jebkas, ko ierakstāt
- Skaitļu sistēma — decimālā, binārā, oktālā, heksadecimālā vai bāze 36
- Papildināt ar nullēm — pārvērst 7 par 007 biļešu vai ID numuriem
- Prefikss un sufikss — ietvert katru skaitli fiksētā tekstā
- Veidne —
{n}ir skaitlis,{i}tā pozīcija, tāpēcuser{n}kļūst paruser42 - Kopēt kā — vienkāršu tekstu, CSV, JSON vai Markdown tabulu
Statistika
Katra izloze tiek apkopota reāllaikā: summa, vidējais, mediāna, mazākais, lielākais, standartnovirze, kā arī cik rezultātu ir pāra, nepāra vai pirmskaitļi. Histogramma parāda sadalījuma formu, un hī-kvadrāta tests parāda, vai rezultāti patiešām atbilst vienmērīgam sadalījumam.
Vēsture
Pēdējās 50 izlozes tiek saglabātas jūsu pārlūkprogrammā kopā ar iestatījumiem, kas tās radīja — ar vienu klikšķi varat atjaunot jebkuru no tām. Bieži lietotus iestatījumus var saglabāt kā nosauktas veidnes (presets), un visu kopumu var eksportēt uz JSON failu, ko importēt citā ierīcē. Nekas netiek glabāts nekur citur, tikai šajā pārlūkprogrammā.
Tastatūra
Nospiediet Atstarpi vai R, lai izlozētu vēlreiz, nesniedzoties pēc peles.
Ātrās priekšizvēles
| Priekšizvēle | Diapazons | Skaits | Izmantošana |
|---|---|---|---|
| 🎲 Kauliņš | 1–6 | 1 | Galda spēles, lēmumu pieņemšana |
| 🪙 Monēta | 0–1 | 1 | Cifra vai raksts |
| 🎰 Loterija | 1–49 | 6 | Unikāli, sakārtoti, kā reālā izlozē |
| 💯 1–100 | 1–100 | 1 | Procenti, A/B sadalījumi |
| 🔢 PIN | 0–9 | 4 | Četri cipari, atkārtojumi atļauti |
Atkārtojamas izlozes
Režīms “ar sēklu” pastāv brīžiem, kad “tici man, tas bija nejauši” nav pietiekami.
Izvēlieties sēklu, par kuru visi var vienoties jau iepriekš — datumu, tēmturi, kāda publiska cenu slēguma vērtību — un paziņojiet to pirms izlozes. Ikviens tad var ievadīt to pašu sēklu ar tiem pašiem iestatījumiem un iegūt identisku rezultātu. Jūs neesat pierādījuši, ka skaitļi bija neparedzami; jūs esat pierādījuši, ka nepārlozējāt, kamēr patika rezultāts.
Tas ir arī veids, kā padarīt nejaušību atkārtojamu darbā, kas jāpārbauda: izlases plānu, ko kolēģis var palaist atkārtoti, testa datu kopu, kas paliek nemainīga visā testu komplektā, klases uzdevumu, kurā katrs skolēns saņem tos pašus “nejaušos” datus.
Sadalījuma izvēle
Vienmērīgais dod katram skaitlim diapazonā vienādas izredzes. Tas parasti ir tas, ko cilvēki domā ar “nejaušs”, un tas ir noklusējuma iestatījums.
Pārējie grupē rezultātus ap kādu vērtību, kas ir raksturīgi reālās pasaules lielumiem:
- Normālais (Gausa) — augums, mērījumu kļūdas, testu rezultāti. Iestatiet vidējo vērtību un standartnovirzi.
- Eksponenciālais — gaidīšanas laiki starp neatkarīgiem notikumiem.
- Puasona — notikumu skaits noteiktā intervālā: ierašanās stundā, defekti partijā.
- Trijstūrveida — kad zināt minimumu, maksimumu un visticamāko vērtību, bet neko citu. Bieži izmanto projektu novērtējumos.
- Binomiālais — veiksmju skaits no fiksēta izmēģinājumu skaita ar fiksētu varbūtību.
Katrs sadalījums tiek nogriezts pie jūsu iestatītā diapazona, tāpēc gara Gausa sadalījuma aste nevar izkļūt ārpus jūsu minimuma un maksimuma.
Kur tiek izmantoti gadījuma skaitļi
Spēles un izklaide
- Galda spēles — kauliņu mešana, gājienu secība
- Galda lomu spēles (RPG) —
4d6dl1raksturlielumiem,2d20kh1priekšrocībai - Izlozes — uzvarētāja izvēle, ar sēklu, lai dalībnieki to varētu pārbaudīt
- Viktorīnas — nejauša jautājumu secība
Statistika un zinātne
- Paraugu ņemšana — parauga izvilkšana no populācijas bez atkārtojumiem
- A/B testēšana — dalībnieku sadalīšana grupās
- Montekarlo simulācija — varbūtības novērtēšana ar atkārtošanu
- Bootstrapping — atkārtota paraugu ņemšana nenoteiktības novērtēšanai
Izstrāde
- Testa dati — miljons vērtību, ģenerētas fonā, lai lapa saglabātu atsaucību
- Fikstūras (fixtures) — ar sēklu, lai neveiksmīgs tests neizdodas vienādi katru reizi
- Nejaušie ID — ar papildināšanu, prefiksiem vai veidni
- Slodzes testēšana — veidnē balstīti identifikatori, piemēram,
user{n}@example.com
Patiesi un pseidonejauši skaitļi
Math.random() | crypto.getRandomValues() | Ar sēklu (xoshiro128**) | |
|---|---|---|---|
| Tips | Pseidonejaušs | Kriptogrāfiski drošs | Pseidonejaušs, deterministisks |
| Entropijas avots | Dzinēja izvēlēta sēkla | Sistēmas CSPRNG | Jūsu sēklas teksts |
| Paredzams? | Iespējams | Nē | Jā, pēc konstrukcijas |
| Atkārtojams? | Nē | Nē | Vienmēr |
| Piemērots drošībai | Nē | Jā | Nē |
| Piemērots statistikai | Atkarīgs | Jā | Jā |
| Piemērots pārbaudāmām izlozēm | Nē | Nē | Jā |
Math.random() šajā rīkā netiek izmantots nekur.
Izlozes bez atkārtojumiem
Ar ieslēgtu opciju Bez atkārtojumiem katrs skaitlis diapazonā parādās ne vairāk kā vienu reizi. Ideāli piemērots:
- Izlozes — neviens nevar uzvarēt divreiz
- Permutācijas — priekšmetu kopas sajaukšana
- Bingo — izsaukto skaitļu saglabāšana kā izsauktus
- Loterija — seši dažādi skaitļi no 1 līdz 49
Izloze izmanto daļēju Fisher–Yates jaukšanu, tāpēc 6 skaitļu pieprasīšana no miljona ir tikpat ātra kā 6 skaitļu pieprasīšana no 49 — tā nekad necikliski nemēģina izvairīties no sadursmes. Ja pieprasāt vairāk unikālu skaitļu, nekā diapazons var nodrošināt, ģenerators to paziņo, nevis iesalst.
Rezultātu eksportēšana
Kopējiet skaitļus kā vienkāršu tekstu ar jebkuru vēlamo atdalītāju, kā CSV izklājlapai, kā JSON kodam vai kā Markdown tabulu dokumentācijai. Ļoti lielas izlozes pilnībā paliek atmiņā un tiek kopētas pilnībā, lai gan uz ekrāna tiek izlozēti tikai pirmie pāris tūkstoši.
Gadījuma skaitļu ģenerēšana savā kodā
JavaScript / TypeScript
// Kriptogrāfiski drošs vesels skaitlis diapazonā [min, max] bez moduļa novirzes.
// Vienkāršais `value % range` dod priekšroku zemām vērtībām, ja diapazons
// nedalās vienmērīgi ar 2**32 - tāpēc mēs noraidām vērtības nevienmērīgajā astē.
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
# Kriptogrāfiski drošs, bez moduļa novirzes
n = secrets.randbelow(max - min + 1) + min
# Atkārtojams: viena un tā pati sēkla vienmēr dod to pašu secību
rng = random.Random('my-seed')
n = rng.randint(min, max)
# Bez atkārtojumiem
sample = random.sample(range(min, max + 1), count)
PHP
// Kriptogrāfiski drošs (PHP 7+), bez moduļa novirzes
$n = random_int($min, $max);
// Atkārtojams
mt_srand(crc32('my-seed'));
$n = mt_rand($min, $max);
Biežāk uzdotie jautājumi (BUJ)
Vai rezultāts ir patiešām nejaušs?
Drošajā režīmā — jā. Tas nāk nocrypto.getRandomValues(), kriptogrāfiski droša ģeneratora, ko baro jūsu operētājsistēmas entropijas krātuve. Rezultāti ir vienmērīgi sadalīti un neparedzami. Režīms ar sēklu apzināti ir pretējs: tas ir atkārtojams, un tas arī ir tā jēga.
Cik skaitļu es varu ģenerēt vienlaicīgi?
Līdz 1 000 000. Izlozes virs 50 000 tiek aprēķinātas fona darba pavedienā (worker), lai lapa saglabātu atsaucību, un ekrānā parādās pirmie 2 000 kopā ar atlikušo skaitu — kopēšana joprojām dod visu.Vai es varu ģenerēt negatīvus skaitļus?
Jā. Iestatiet negatīvu minimumu. Darbojas viss JavaScript skaitļu diapazons, ieskaitot negatīvus diapazonus abos galos.Vai kārtošana ietekmē nejaušību?
Nē. Skaitļi vispirms tiek izlozēti un pēc tam sakārtoti. Kārtošana maina tikai secību, kādā tos redzat.Vai viena un tā pati sēkla rīt dos tos pašus skaitļus?
Jā, arī jebkurā citā ierīcē vai pārlūkprogrammā. Ģenerators ar sēklu ir pilnībā deterministisks un atkarīgs vienīgi no jūsu sēklas un iestatījumiem.Ko man pasaka vienmērīguma tests?
Tas veic hī-kvadrāta testu, salīdzinot, cik bieži katrs skaitlis patiešām parādījās, ar to, cik bieži tam vajadzēja parādīties. Ja statistikas vērtība paliek zem kritiskās vērtības, rezultāti atbilst vienmērīgam sadalījumam. Lai tas ko nozīmīgu pateiktu, nepieciešams samērā šaurs diapazons un pietiekami daudz izložu — vismaz piecas uz katru iespējamo vērtību.Kā darbojas svari?
Ierakstiet tos kānumber:weight pārus, piemēram, 1:5, 2:1, 3:1. Šeit 1 ir piecas reizes ticamāks nekā 2 vai 3. Skaitļiem, kurus neuzskaitāt, tiek piešķirts svars nulle, un tie nekad netiek izlozēti.
Kādi kauliņu apzīmējumi tiek atbalstīti?
3d6 met trīs sešpusējus kauliņus. Pievienojiet modifikatoru ar 3d6+2. Paturiet vai atmetiet kauliņus ar kh, kl, dh, dl — tā 2d20kh1 patur augstāko no diviem d20 (priekšrocība/advantage), un 4d6dl1 atmet zemāko no četriem d6.