The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)(PHP 4, PHP 5, PHP 7, PHP 8)
mt_rand — Mersenne Twister Rastgele Sayı Üreteci ile rastgele bir değer üretir
Eski libc'lerin pek çok rastgele sayı üreteci, şüpheli ya da bilinmeyen özelliklere sahiptir ve yavaştır. mt_rand() işlevi, eski rand() işlevinin yerine doğrudan kullanılabilen bir karşılığıdır. » Mersenne Twister kullanan, bilinen özelliklere sahip bir rastgele sayı üreteci kullanır. Bu üreteç, ortalama bir libc rand() işlevinden dört kat daha hızlı rastgele sayı üretir.
Seçimlik asgari ve azami
bağımsız değişkenleri olmaksızın çağrıldığında
mt_rand(), 0 ile mt_getrandmax()
arasında bir sözde rastgele değer döndürür. Örneğin, 5 ile 15 (dahil)
arasında rastgele bir sayı isteniyorsa mt_rand(5, 15)
kullanılabilir.
Bu işlev kriptografik olarak güvenilir değerler üretmez ve kriptografik amaçlarla veya döndürülen değerlerin tahmin edilemez olmasını gerektiren amaçlarla kullanılmamalıdır.
Kriptografik olarak güvenilir rastgelelik gerekliyse Random\Randomizer sınıfı Random\Engine\Secure motoru ile kullanılabilir. Basit kullanım durumlarında random_int() ve random_bytes() işlevleri, işletim sisteminin CSPRNG’i tarafından desteklenen kullanışlı ve güvenli bir arayüz sağlar.
This function uses the global Mt19937 (“Mersenne Twister”) instance as the source of randomness and thus shares its state with all other functions using the global Mt19937. Using any of these functions advances the sequence for all the other functions, regardless of scope.
Generating repeatable sequences by seeding mt_srand() or srand() with a known value will also yield repeatable output from this function.
Prefer using Random\Randomizer methods in all newly written code.
asgariDöndürülecek seçimlik en küçük değer (öntanımlı: 0)
azamiDöndürülecek seçimlik en büyük değer (öntanımlı: mt_getrandmax())
asgari (veya 0) ile azami
(veya mt_getrandmax(), aralığa dahil) arasında rastgele
bir tamsayı değeri.
azami, asgari
değerinden küçükse bir ValueError istisnası
yavrulanır.
| Sürüm: | Açıklama |
|---|---|
| 8.0.0 |
azami, asgari
değerinden küçükse bir ValueError istisnası
yavrulanır; önceden E_WARNING uyarısı
üretiliyor ve işlev false döndürüyordu.
|
| 7.2.0 | mt_rand(), modül sapma hatası için bir hata düzeltmesi aldı. Bu, belirli bir tohumla üretilen dizilerin, 64 bitlik makinelerde PHP 7.1'den farklı olabileceği anlamına gelir. |
| 7.1.0 | rand() işlevi mt_rand() işlevinin takma adı haline getirildi. |
| 7.1.0 |
mt_rand() işlevi, Mersenne Twister algoritmasının
sabitlenmiş, doğru sürümünü kullanmak üzere
güncellendi.
Eski davranışa geri dönmek için ikinci bağımsız değişken olarak
MT_RAND_PHP ile mt_srand()
kullanılabilir.
|
Örnek 1 mt_rand() örneği
<?php
echo mt_rand(), "\n";
echo mt_rand(), "\n";
echo mt_rand(5, 15), "\n";Yukarıdaki örnek şuna benzer bir çıktı üretir:
1604716014 1478613278 6
asgari azami aralığı
mt_getrandmax() aralığı içinde olmalıdır. Yani
(azami - asgari) <=
mt_getrandmax(). Aksi takdirde,
mt_rand() olması gerekenden daha düşük kalitede
rastgele sayılar döndürebilir.
The seed is the PID + LCG (https://github.com/php/php-src/search?q=GENERATE_SEED&unscoped_q=GENERATE_SEED)