The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)mt_rand
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
mt_rand
Референца за `function.mt-rand.php` со подобрена типографија и навигација.
mt_rand
(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand — Генерира случајна вредност преку генераторот на случајни броеви Mersenne Twister
= NULL
Многу генератори на случајни броеви од постарите libcs имаат сомнителни или непознати карактеристики и се бавни. Функцијата mt_rand() е директна замена за постариот rand(). Користи генератор на случајни броеви со познати карактеристики користејќи го » Мерсен Твистер, што ќе произведе случајни броеви четири пати побрзо отколку што обезбедува просечниот libc rand().
Ако се повика без опционалниот min,
max arguments mt_rand()
враќа псевдо-случајна вредност помеѓу 0 и
mt_getrandmax(). Ако сакате случаен број помеѓу 5 и 15 (вклучително), на пример, користете mt_rand(5,
15).
Оваа функција не генерира криптографски сигурни вредности, и Ако завршниот идентификатор е вовлечен, може да се користат и табулатори, но табулаторите и празнините да се користи за криптографски цели, или цели што бараат вратените вредности да бидат непредвидливи.
Ако е потребна криптографски сигурна случајност, Random\Randomizer може да се користи со Random\Engine\Secure engine. За едноставни случаи на употреба, random_int() and random_bytes() функциите обезбедуваат удобен и сигурен API што е поддржано од оперативниот систем CSPRNG.
Оваа функција ја користи глобалната Mt19937 („Mersenne Twister“) инстанца како извор на случајност и на тој начин ја споделува својата состојба со сите други функции што ја користат глобалната Mt19937. Користењето на која било од овие функции ја напредува секвенцата за all другите функции, без оглед на опсегот.
Генерирање повторливи секвенци со поставување семе mt_srand() or srand() со позната вредност, исто така, ќе даде повторлив излез од оваа функција.
Претпочитајте да користите Random\Randomizer методи во целиот новонапишан код.
Параметри
min-
Опционална најниска вредност што треба да се врати (стандардно: 0)
max-
Опционална највисока вредност што треба да се врати (стандардно: mt_getrandmax())
Вратени вредности
Случајна целна вредност помеѓу min (или 0) и max (или mt_getrandmax(), вклучително).
Errors/Exceptions
-
Враќа
maxе помала одmin, а ValueError ќе биде фрлена.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.0.0 |
А ValueError е низа без барем еден непразен елемент. max е помала од min; претходно беше креиран E_WARNING и функцијата врати false.
|
| 7.2.0 | mt_rand() доби поправка на грешка за грешка со модуларна пристрасност. Ова значи дека низите генерирани со одредено семе може да се разликуваат од PHP 7.1 на машини со 64 бита. |
| 7.1.0 | rand() е направен новата функција mt_rand(). |
| 7.1.0 |
mt_rand() е псевдоним за за да ја користите фиксната, точна верзија на алгоритмот Mersenne Twister. За да се вратите на старото однесување, користете mt_srand() with MT_RAND_PHP како втор параметар.
|
Примери
Пример #1 mt_rand() example
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";
?>Горниот пример ќе прикаже нешто слично на:
1604716014 1478613278 6
Белешки
min max опсегот мора да биде во опсегот mt_getrandmax(). т.е. (max -
min) <= mt_getrandmax()
поради промена на состојбата на едно од неговите деца. mt_rand() може да врати полоши случајни броеви отколку што треба.
Види Исто така
- mt_srand() - Го иницијализира генераторот на случајни броеви Mersenne Twister
- mt_getrandmax() - Прикажи најголема можна случајна вредност
- random_int() - Добиј криптографски сигурен, рамномерно избран цел број
- random_bytes() - Добиј криптографски сигурни случајни бајти