Maison >développement back-end >Problème PHP >Quelles sont les méthodes pour générer des nombres aléatoires en PHP ?

Quelles sont les méthodes pour générer des nombres aléatoires en PHP ?

王林
王林avant
2021-03-03 17:52:1119576parcourir

Quelles sont les méthodes pour générer des nombres aléatoires en PHP ?

La méthode permettant à PHP de générer des nombres aléatoires est très simple, car PHP nous fournit en interne une méthode de nombres aléatoires prête à l'emploi. Par conséquent, nous n’avons pas besoin d’effectuer de configuration supplémentaire, il suffit d’appeler la méthode interne.

La fonction de nombre aléatoire php est la suivante :

1. Fonction rand

La fonction rand() peut générer des entiers aléatoires sans ajouter de paramètres. Si vous souhaitez définir la plage de nombres aléatoires, vous pouvez définir les valeurs min et max dans la fonction. Si vous devez générer une graine de nombre aléatoire, utilisez la configuration de la fonction srand.

echo rand();                      // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 32767,RAND_MAX 可以用函数 getrandmax() 获得
echo rand(1000000, 9999999);      // 生成 1000000~9999999 之间的随机数

$seed = time();                   // 使用时间作为种子源
srand($seed);                     // 播下随机数发生器种子
echo rand();                      // 根据种子生成 0~32768 之间的随机数。如果 $seed 值固定,则生成的随机数也不变
echo rand(1000000, 9999999);      // 根据种子生成 1000000~9999999 之间的随机数。如果 $seed 值固定,则生成的随机数也不变

2. La fonction mt_rand

mt_rand() utilise l'algorithme Mersenne Twister pour renvoyer des entiers aléatoires. La principale différence avec la fonction rand() est :

mt_rand(). génère des nombres aléatoires Les chiffres sont en moyenne quatre fois plus rapides que le rand() fourni par la libc, et la fonction d'amorçage utilise mt_srand() au lieu de srand(). Bien qu'il existe cette différence, leurs méthodes d'utilisation sont toujours similaires, comme suit :

echo mt_rand();                   // 生成 0~RAND_MAX 之间的随机数,Windows 系统下 RAND_MAX 的值为 2147483647(与rand()中的 RAND_MAX 不同),RAND_MAX 可以用函数 mt_getrandmax() 获得
echo mt_rand(1000000, 9999999);   // 生成 1000000~9999999 之间的随机数,不受系统 RAND_MAX 影响

$seed = time();                   // 使用时间作为种子源
mt_srand($seed);                  // 播下随机数发生器种子
echo rand();                      // 根据种子生成 0~RAND_MAX 之间的随机数,如果 $seed 值固定,则生成的随机数也不变
echo rand(1000000, 9999999);      // 根据种子生成 1000000~9999999 之间的随机数,如果 $seed 值固定,则生成的随机数也不变

Remarque : les nombres aléatoires générés par rand() et mt_rand() sont tous des entiers et ne contiennent pas de lettres anglaises.

(Recommandations associées : tutoriel php)

3. La fonction uniqid

la fonction uniqid() génère un identifiant unique. La longueur de l'ID généré par défaut est de 13 ou 23 chiffres, composés de lettres et de chiffres anglais. La fonction uniqid() a deux paramètres, le format est le suivant :

uniqid(prefix,more_entropy)

où,

  • préfixe : généré Préfixe de l'ID

  • more_entropy : s'il faut ajouter de l'entropie supplémentaire

Le programme suivant,

echo uniqid();                    // 生成13位字符串,如:55f540e273e93
echo uniqid('one.');              // 生成前缀为one.加13位随机字符的字符串,如:one.55f540e273e93
echo uniqid('two.', true);        // 生成前缀为two.加23位随机字符的字符串(加了熵),如:two.55f540e273e932.77804707,比上面的多了 10 位,即多了:2.77804707

Explication : En raison du système, parfois, l'ID généré par cette fonction n'est pas optimal. Pour générer un identifiant absolument unique, utilisez la fonction md5().

Partage de vidéos d'apprentissage : Tutoriel vidéo php

Lien original : https://www.awaimai.com/216.html

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer