Random\Engine\Mt19937::__construct

(PHP 8 >= 8.2.0)

Random\Engine\Mt19937::__constructConstructs a new Mt19937 engine

Description

public Random\Engine\Mt19937::__construct(?int $seed = null, int $mode = MT_RAND_MT19937)

Attention

Étant donné que le moteur Mt19937 ("Mersenne Twister") prend un seul entier de 32 bits en tant que graine, le nombre de séquences aléatoires possibles est limité à seulement 232 (par exemple 4 294 967 296), malgré la période énorme de Mt19937 de 219937-1.

Quand on se fie à une graine aléatoire implicite ou explicite, les duplications apparaîtront beaucoup plus tôt. Les graines dupliquées sont attendues avec une probabilité de 50% après moins de 80 000 graines générées aléatoirement selon le problème d anniversaire. Une probabilité de 10% d une graine dupliquée se produit après avoir généré environ 30 000 graines de manière aléatoire.

Cela rend Mt19937 inadapté aux applications où les séquences dupliquées ne doivent pas se produire avec plus qu une probabilité négligeable. Si une graine reproductible est requise, à la fois le moteur Random\Engine\Xoshiro256StarStar et Random\Engine\PcgOneseq128XslRr64 supportent des graines beaucoup plus grandes qui sont peu susceptibles de se heurter de manière aléatoire. Si la reproductibilité n'est pas requise, le moteur Random\Engine\Secure fournit des données aléatoires cryptographiquement sécurisées.

Avertissement

Cette fonction est actuellement non documentée ; seule la liste des arguments est disponible.

Liste de paramètres

seed

Fills the state with values generated with a linear congruential generator that was seeded with seed interpreted as an unsigned 32 bit integer.

If seed is omitted or null, a random unsigned 32 bit integer will be used.

mode

Use one of the following constants to specify the implementation of the algorithm to use.

  • MT_RAND_MT19937: The correct Mt19937 implementation.
  • MT_RAND_PHP: An incorrect implementation for backwards compatibility with mt_srand() prior to PHP 7.1.0.

Avertissement

Cette fonctionnalité est OBSOLÈTE à partir de PHP 8.3.0. Dépendre de cette fonctionnalité est fortement déconseillé.

Exemples

Exemple #1 Random\Engine\Mt19937::__construct() example

<?php
// Uses a random 32 Bit seed.
$e = new \Random\Engine\Mt19937();

$r = new \Random\Randomizer($e);
?>
add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top