Longhorn PHP 2026 - Call For Papers

mt_rand

(PHP 4, PHP 5, PHP 7, PHP 8)

mt_randMersenne Twister Rastgele Sayı Üreteci ile rastgele bir değer üretir

Açıklama

mt_rand(): int
mt_rand(int $asgari, int $azami): int

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.

Dikkat

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.

Dikkat

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.

Bağımsız Değişkenler

asgari

Döndürülecek seçimlik en küçük değer (öntanımlı: 0)

azami

Döndürülecek seçimlik en büyük değer (öntanımlı: mt_getrandmax())

Dönen Değerler

asgari (veya 0) ile azami (veya mt_getrandmax(), aralığa dahil) arasında rastgele bir tamsayı değeri.

Hatalar/İstisnalar

  • azami, asgari değerinden küçükse bir ValueError istisnası yavrulanır.

Sürüm Bilgisi

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.

Örnekler

Ö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

Notlar

Uyarı

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.

Ayrıca Bakınız

  • mt_srand() - Mersenne Twister Rastgele Sayı Üretecini tohumlar
  • mt_getrandmax() - Olası en büyük rastgele değeri döndürür
  • random_int() - Get a cryptographically secure, uniformly selected integer
  • random_bytes() - Get cryptographically secure random bytes

add a note

User Contributed Notes 1 note

To Top