Случайно число Генератор
Генерирайте незабавно произволни числа във вашия браузър. Персонализирайте диапазона, броя и формата. Безплатно, лично и без изпращане на данни към сървър.
Генерирай
Генерирайте незабавно произволни числа във вашия браузър. Персонализирайте диапазона, броя и формата. Безплатно, лично и без изпращане на данни към сървър.
Генерирай
Генераторите на произволни числа произвеждат числа в определен диапазон без предвидим модел. Обичайните приложения включват хвърляне на зарове, избиране на лотарийни числа, вземане на проби за статистическа работа, генериране на тестови данни и всеки контекст, където е необходим безпристрастен избор. Качеството на случайността зависи от източника: слабите източници могат да произведат числа, които изглеждат случайни, но имат откриваеми модели; силните източници са непредвидими дори за сложен анализ.
Този генератор използва криптографски защитен произволен източник на браузъра (window.crypto.getRandomValues) за приложения, свързани със сигурността, с незадължителен резервен Math.random за развлекателни приложения, където скоростта има повече значение от сигурността. За хвърляния на зарове, избори на състезания или нещо, което влияе върху резултатите, сигурният източник е правилният избор.
Изходният диапазон и броят са конфигурируеми. Генерирайте едно число, няколко наведнъж или последователност с незадължителна уникалност (без дубликати). Изходните формати включват обикновени числа, списъци, разделени със запетая, и текст един на ред.
Много малки решения се възползват от безпристрастен случаен подбор. Избиране на победител за състезание, решаване кой ресторант да опитате, рандомизиране на реда на тестовите случаи, вземане на проби от набор от данни - всичко това се подобрява от генератор на произволни числа, който изключва човешката пристрастност.
Статистическата и научната работа също зависи от качествената произволност. Симулациите на Монте Карло, присвояването на A/B тестова кофа, рандомизирането на тестови входове и много други техники се нуждаят от числа, които са статистически еднакви и непредвидими за изследваната система.
Задайте диапазон и брой, генерирайте.
Генериране на произволно цяло число: вземете произволен байт (или дума) от crypto.getRandomValues, приложете вземане на проби за отхвърляне, за да избегнете отклонение по модула, съпоставете към желания диапазон. Обикновеното модулно вземане на проби без отхвърляне създава леко отклонение за диапазони, които не се разделят равномерно в диапазона на източника; вземането на проби за отхвърляне избягва това.
Генериране на унифицирано цяло число без пристрастия: генерира произволен байт, ако байт > floor(256/диапазон) × диапазон, отхвърлете и опитайте отново, в противен случай върнете модифицирания диапазон на байта. Степента на отхвърляне е най-много 50% средно, така че алгоритъмът е практически бърз дори за неудобни диапазони.
Math.random срещу crypto.getRandomValues: Math.random е по-бърз, но използва xorshift или подобни PRNG, които могат да бъдат предвидени при достатъчен изход. crypto.getRandomValues е криптографски защитен. За използване, което не е свързано със сигурността (зарове, случайно избиране), работи; за сигурност използвайте крипто.