Материјали о случајним бројевима: како генератори раде и где греше

Случајан број делује као најједноставнија ствар коју рачунар може да произведе, а уједно је једна од оних код којих је најлакше направити суптилну грешку. Материјали у овом одељку објашњавају одакле бројеви потичу, шта разликује генератор на који се можете ослонити од оног на који не можете, и за којим алатом треба посегнути када исход мора да издржи проверу — извлачење у учионици, наградна игра или тестни скуп података.

Одакле почети

Прочитајте шта је генератор случајних бројева: хардверски, псеудослучајни и криптографски сигурни генератори, зашто се бројеви понављају и шта прегледач има да понуди. Када су вам потребни бројеви а не објашњење, генератор случајних бројева их извлачи у вашем прегледачу у било ком распону, са понављањем или без њега.

Где генератори тихо греше

Снажан извор случајности представља само половину посла. Друга половина је пресликавање сирових вредности на ваш распон, и управо ту многи генератори из кућне радиности подбацују. Узимање остатка при дељењу са величином распона (модуло) очигледан је приступ, али доноси суптилну пристрасност: осим ако величина распона не дели излазни простор извора без остатка, најнижи бројеви у распону појављују се нешто чешће од осталих. Ова мана назива се пристрасност модула (modulo bias). Једно од решења је узорковање са одбацивањем (rejection sampling): одбаците вредности које падну у неуједначени остатак и извлачите поново. Наш генератор управо то ради, тако да сваки број у вашем распону има исту шансу при сваком извлачењу.

Исти разлог искључује и пречице за којима људи најпре посегну. Math.random() не гарантује ништа у погледу сигурности, а функције у табелама као што су RAND() и RANDBETWEEN() припадају истој класи: добре за грубо мешање, погрешне за било шта што би неко могао да оспори.

Бројеви, листе и коцкице

Генератор случајних бројева враћа бројеве из распона који сами одредите. Алат за случајан избор са листе ради са листом коју налепите — именима, пријавама, опцијама — тако да никада не морате ручно да повезујете бројеве са редовима. За друштвене игре бацање коцкица баца коцкице и сабира њихове вредности, док је за избор између две могућности довољно бацање новчића. Када случајност треба нешто да заштити, а не само да пресуди, користите снажан генератор лозинки. Сви они користе исти криптографски сигуран извор у вашем прегледачу.

Спремни сте да испробате алат?

Испробајте наш бесплатан и сигуран алат Генератор случајних бројева директно у свом прегледачу.

Отвори алат