Kas yra šis įrankis?
Atsitiktinių skaičių generatorius parenka skaičius iš intervalo, kuriame kiekviena reikšmė turi lygią tikimybę. Žmonės juo naudojasi rinkdami loterijos ir akcijos laimėtojus, atsitiktinai skirstydami komandas, rinkdami loterijos numerius, kurdami atsitiktines apklausų imtis, mesdami didesnius kauliukus žaidimams ir priimdami nešališkus sprendimus.
Kokybė svarbesnė, nei atrodo: naivūs generatoriai turi subtilų polinkį į tam tikras intervalo dalis. Šis įrankis naudoja crypto.getRandomValues() — naršyklės API, standartizuotą W3C Web Cryptography specifikacijos, kuri reikalauja, kad diegimai „generuotų kriptografiškai stiprias atsitiktines reikšmes“. Tai stipresnė garantija nei Math.random(), kurios naršyklės aiškiai neįpareigoja būti nenuspėjamos ar nešališkos. Kartu su atmetimo mėginiavimu (rejection sampling) — vadovėline metodika intervalo šališkumui pašalinti — kiekvienas jūsų pasirinkto intervalo skaičius tampa lygiai taip pat tikėtinas kaip ir bet kuris kitas.
Kodėl jį naudoti?
- Bet koks intervalas, įskaitant neigiamus skaičius, iki 10 000 skaičių vienu kartu.
- Režimas „be pasikartojimų“ sąžiningiems traukimams — tarsi trauktumėte numeruotus kamuoliukus iš maišo.
- Pasirenkamas rikiavimas patogesniems sąrašams.
- Įrodomai sąžininga: kriptografiškai saugu ir be šališkumo, tinka tikroms akcijoms.
- Privatu ir akimirksniu — generuojama jūsų įrenginyje, niekas nefiksuojama.
Kaip naudoti
- Nustatykite minimumą ir maksimumą (abu įtraukiami).
- Pasirinkite, kiek skaičių reikia.
- Pažymėkite „be pasikartojimų“, jei norite traukimo be pasikartojimų, ir „rikiuoti“, jei norite surikiuoto sąrašo.
- Spustelėkite „Generuoti skaičius“ — vienas skaičius rodomas didelis, sąrašai rodomi po vieną eilutėje.
- Spustelėkite „Kopijuoti visus“ sąrašams.
Pavyzdys
Įvestis
Min: 1, Max: 50, Kiekis: 6, be pasikartojimų, surikiuotaIšvestis
3
11
24
30
42
49Klasikinis loterijos tipo traukimas: šeši unikalūs skaičiai nuo 1 iki 50, surikiuoti.
Praktiniai patarimai
- Reikia sąrašo, o ne vieno skaičiaus? Nustatykite kiekį didesnį nei 1 — įrankis atspausdina po vieną skaičių eilutėje, paruoštą įklijuoti į skaičiuoklės stulpelį.
- Metate kauliukus stalo žaidimui ar stalo RPG? Nustatykite min/max pagal kauliuką (1–6, 1–20) ir sugeneruokite kelis metimus vienu kartu, o ne spauskite „generuoti“ pakartotinai.
- Traukiate nedidelę apklausos imtį iš 500 respondentų sunumeruoto sąrašo? Nustatykite intervalą 1–500, įjunkite „be pasikartojimų“ ir ištraukite tiek ID, kiek reikia — niekas nebus pasirinktas du kartus.
- Vieno laimėtojo pasirinkimas iš telkinio veikia taip pat, kaip ir sąrašo generavimas: nustatykite kiekį 1 ir intervalą pagal dalyvių skaičių.
- Loterijos stiliaus skaičių generavimui (pavyzdžiui, 6 skaičiai iš 1–49) „be pasikartojimų“ kartu su rikiavimu atspindi tai, kaip skaitomi tikri loterijos traukimai.
Atsitiktinis skaičius ir atsitiktinių skaičių sąrašas
Vienas atsitiktinis skaičius ir atsitiktinių skaičių sąrašas kyla iš to paties generatoriaus — vienintelis skirtumas yra prašomas kiekis. Nustatykite kiekį 1, kad sugeneruotumėte vieną skaičių, arba padidinkite jį, ir tai tampa atsitiktinių skaičių sąrašo generatoriumi, spausdinančiu po vieną reikšmę eilutėje, patogiai įklijuojamą į skaičiuoklę. Abu režimai remiasi tuo pačiu kriptografiškai saugiu, be šališkumo šaltiniu.
Jei traukimui reikia unikalių ID, o ne skaičių, geriau tinka UUID — jis sukurtas niekada nesusidurti sistemose, ne tik viename pakete.
Populiarūs intervalai: 1-6, 1-10, 1-30, 1-100 ir daugiau
Daugumai žmonių reikia atsitiktinio skaičiaus viename iš kelių klasikinių intervalų, tad įrankis turi vieno paspaudimo parinktis jiems. 1–6 yra standartinis kauliuko metimas (naudokite 1–20 stalo RPG žaidimams); 1–8 ir 1–30 dažni klasės pasirinkimams ir mažoms akcijoms; 1–10 ir 1–100 yra kasdieniai „pasirink skaičių“ intervalai; 1–1000 tinka didesniems telkiniams.
Kiekviena parinktis yra tiesiog nuoroda — ji užpildo minimumą ir maksimumą ir iškart sugeneruoja. Reikia atsitiktinio skaičiaus tarp 1 ir 20, 5 ir 50, ar -10 ir 10? Įveskite bet kokias ribas, įskaitant neigiamus skaičius. Abu kraštai visada įtraukiami į traukimą.
„Skaičių atsitiktinimo įrankis“ ir „atsitiktinių skaičių generatorius“ yra tas pats: nustatykite intervalą, spustelėkite „generuoti“, ir gaunate nešališką pasirinkimą. Kartotiniams traukimams (pavyzdžiui, skelbiant bingo numerius nuo 1–90), įjunkite „be pasikartojimų“, kad kiekvienas skaičius būtų paskelbtas tik kartą.
Dažniausiai užduodami klausimai
Ar skaičiai tikrai atsitiktiniai?
Jie gaunami iš crypto.getRandomValues() — jūsų operacinės sistemos kriptografinio atsitiktinumo šaltinio, taikant atmetimo mėginiavimą intervalo šališkumui pašalinti. Traukimams, žaidimams ir mėginiavimui tai taip sąžininga, kaip tik gali būti. Jei jums konkrečiai reikia atsitiktinumo kriptografiniams raktams ar autentifikavimo paslaptims, o ne traukimams ar žaidimams, naudokite specializuotą slaptažodžio ar rakto generatorių — tas pats pagrindinis atsitiktinumo šaltinis, bet sukurtas atitinkant kitus tos naudojimo srities reikalavimus (ilgį, simbolių rinkinius, apsaugą nuo atsitiktinio žurnalavimo).
Ar minimumas ir maksimumas įtraukiami į rezultatus?
Taip, abu kraštai įtraukiami. Intervalas 1–10 gali sugeneruoti tiek 1, tiek 10.
Ką tiksliai daro „be pasikartojimų“?
Kiekvienas intervalo skaičius gali pasirodyti ne daugiau kaip vieną kartą, tarsi traukiant numeruotus kamuoliukus iš maišo jų negrąžinant. Todėl kiekis negali viršyti intervalo dydžio — įrankis apie tai praneša, jei taip nutinka.
Ar galiu tuo naudotis, kad sąžiningai išrinkčiau akcijos laimėtoją?
Taip. Sunumeruokite savo dalyvius nuo 1 iki N, sugeneruokite vieną skaičių tame intervale, ir rezultatas bus nešališkas pasirinkimas. Keliems laimėtojams naudokite „be pasikartojimų“, kad niekas nelaimėtų du kartus.
Kodėl mano sąraše du kartus pasirodė tas pats skaičius?
Be „be pasikartojimų“ kiekvienas traukimas yra nepriklausomas — pasikartojimai yra normalūs ir iš tikrųjų yra tikro atsitiktinumo įrodymas (kauliukas gali du kartus iškristi ta pačia puse). Įjunkite „be pasikartojimų“, jei kiekvienas skaičius reikalingas tik vieną kartą.
Kaip sugeneruoti atsitiktinį skaičių nuo 1 iki 100?
Spustelėkite parinktį 1–100 (arba nustatykite Min į 1 ir Max į 100) ir paspauskite „Generuoti skaičius“. Kiekvienas sveikasis skaičius nuo 1 iki 100 turi lygiai 1 iš 100 tikimybę. Tas pats veikia bet kokiam intervalui — 1 iki 10, 1 iki 30, 1 iki 1000 ar pasirinktinėms riboms.
Ar galiu su tuo mesti kauliuką (atsitiktinis skaičius 1-6)?
Taip — naudokite parinktį 1–6 (kauliukas). Norėdami mesti kelis kauliukus vienu kartu, padidinkite kiekį: pvz., kiekis 4 su intervalu 1–6 vienu paspaudimu meta keturis kauliukus. D20 kauliukui nustatykite intervalą 1–20.
Kaip atlikti atsitiktinį traukimą, pavyzdžiui, bingo ar loterijai?
Nustatykite intervalą pagal visą jūsų telkinį — 1–90 bingo, 1 iki jūsų bilietų skaičiaus loterijai — įjunkite „be pasikartojimų“ ir sugeneruokite visą sąrašą vienu kartu. Skaityti tą sąrašą tvarka matematiškai yra tas pats, kas traukti skaičius po vieną negrąžinant, tik greičiau.