mt_srand

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

mt_srandMersenne Twister Rastgele Sayı Üretecini tohumlar

Açıklama

mt_srand(?int $tohum = null, int $kip = MT_RAND_MT19937): void

Rastgele sayı üretecini tohum ile, ya da tohum belirtilmemişse rastgele bir değerle tohumlar.

Bilginize: Otomatik olarak yapıldığından srand() veya mt_srand() işleviyle rasgele sayı üretecini tohumlamaya ihtiyaç yoktur.

Dikkat

Because the Mt19937 (“Mersenne Twister”) engine accepts only a single 32 bit integer as the seed, the number of possible random sequences is limited to just 232 (i.e. 4,294,967,296), despite Mt19937’s huge period of 219937-1.

When relying on either implicit or explicit random seeding, duplications will appear much earlier. Duplicated seeds are expected with 50% probability after less than 80,000 randomly generated seeds according to the birthday problem. A 10% probability of a duplicated seed happens after randomly generating roughly 30,000 seeds.

This makes Mt19937 unsuitable for applications where duplicated sequences must not happen with more than a negligible probability. If reproducible seeding is required, both the Random\Engine\Xoshiro256StarStar and Random\Engine\PcgOneseq128XslRr64 engines support much larger seeds that are unlikely to collide randomly. If reproducibility is not required, the Random\Engine\Secure engine provides cryptographically secure randomness.

Bağımsız Değişkenler

tohum

İçsel durumu, tohum ile tohumlanmış bir doğrusal eşleşik üretecin ürettiği, işaretsiz 32 bitlik tamsayı olarak yorumlanan değerlerle doldurur.

tohum belirtilmemişse veya null ise, rastgele işaretsiz 32 bitlik bir tamsayı kullanılır.

kip

Kullanılacak algoritmanın gerçeklenimini belirtmek için aşağıdaki sabitlerden biri kullanılır.

  • MT_RAND_MT19937: PHP 7.1.0'dan itibaren mevcut olan doğru Mt19937 gerçeklenimi.
  • MT_RAND_PHP PHP 7.1.0'a kadar öntanımlı olarak kullanılan, hatalı bir Mersenne Twister gerçeklenimini kullanır. Bu kip, geriye dönük uyumluluk için mevcuttur.

Uyarı

Bu özelliğin kullanımı PHP 8.3.0 itibariyle ÖNERİLMEMEKTEDİR. Bu özelliğe kesinlikle güvenilmemelidir.

Dönen Değerler

Hiçbir değer dönmez.

Sürüm Bilgisi

Sürüm: Açıklama
8.3.0 tohum artık null olabiliyor.
7.1.0 srand() işlevi mt_srand() 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.

Ayrıca Bakınız

  • mt_rand() - Mersenne Twister Rastgele Sayı Üreteci ile rastgele bir değer üretir
  • mt_getrandmax() - Olası en büyük rastgele değeri döndürür
  • srand() - Seed the random number generator