Atsitiktinių skaičių medžiaga: kaip veikia generatoriai ir kur jie klysta

Atsitiktinis skaičius atrodo paprasčiausias dalykas, kurį gali sukurti kompiuteris, tačiau čia labai lengva padaryti sunkiai pastebimą klaidą. Šio skyriaus medžiaga paaiškina, iš kur atsiranda skaičiai, kuo patikimas generatorius skiriasi nuo nepatikimo ir kokį įrankį pasirinkti, kai rezultatas privalo būti neginčijamas — traukimui klasėje, konkursui ar testinių duomenų rinkiniui.

Nuo ko pradėti

Skaitykite, kas yra atsitiktinių skaičių generatorius: aparatiniai, pseudatsitiktiniai ir kriptografiškai saugūs generatoriai, kodėl skaičiai kartojasi ir ką siūlo naršyklė. Kai jums reikia ne paaiškinimo, o skaičių, atsitiktinių skaičių generatorius sugeneruoja juos naršyklėje bet kuriame intervale, su pasikartojimais arba be jų.

Kur generatoriai nepastebimai suklysta

Patikimas atsitiktinumo šaltinis yra tik pusė darbo. Kita pusė — neapdorotų reikšmių perkėlimas į jūsų intervalą, ir būtent čia suklumpa daugelis savadarbių generatorių. Paimti reikšmės dalybos iš intervalo dydžio liekaną atrodo akivaizdus būdas, tačiau jis sukelia paslėptą netolygumą: jei šaltinio reikšmių aibė nesidalija iš intervalo dydžio be liekanos, mažiausi intervalo skaičiai iškrenta šiek tiek dažniau nei kiti. Šis trūkumas vadinamas liekanos poslinkiu (angl. modulo bias). Viena iš išeičių yra atmetimo atranka (angl. rejection sampling): atmesti reikšmes, patenkančias į netolygią liekanos dalį, ir traukti iš naujo. Mūsų generatorius būtent taip ir daro, todėl kiekvienas jūsų intervalo skaičius per kiekvieną traukimą turi visiškai vienodą galimybę.

Dėl tos pačios priežasties netinka ir paprasčiausi sprendimai, kuriuos žmonės pasitelkia pirmiausia. Math.random() neturi jokių saugumo garantijų, o skaičiuoklių funkcijos, tokios kaip RAND() ir RANDBETWEEN(), priklauso tai pačiai kategorijai: jos tinka apytiksliam sumaišymui, tačiau visiškai netinka situacijoms, kurias kas nors galėtų užginčyti.

Skaičiai, sąrašai ir kauliukai

Atsitiktinių skaičių generatorius pateikia skaičius iš jūsų nurodyto intervalo. Atsitiktinis pasirinkimas iš sąrašo dirba su jūsų įklijuotu sąrašu — vardais, įrašais, parinktimis — todėl jums niekada nereikės rankiniu būdu susieti skaičių su eilutėmis. Stalo žaidimams kauliukų generatorius meta kauliukus ir susumuoja taškus, o renkantis iš dviejų variantų pakanka monetos metimo. Kai atsitiktinumas turi ką nors apsaugoti, o ne nuspręsti, naudokite saugų slaptažodžių generatorių. Visi jie naudoja tą patį kriptografiškai saugų šaltinį jūsų naršyklėje.

Pasiruošę naudoti įrankį?

Išbandykite nemokamą ir saugų įrankį „Atsitiktinių skaičių generatorius“ tiesiog savo naršyklėje.

Atidaryti įrankį