- Catégories :
UNIFORM¶
Génère un nombre pseudo-aléatoire uniformément distribué dans l’intervalle inclusif [min
, max
].
Syntaxe¶
UNIFORM( <min> , <max> , <gen> )
Arguments¶
min
Une constante spécifiant la valeur minimale (incluse) du nombre généré.
max
Une constante spécifiant la valeur maximale (incluse) du nombre généré.
gen
Expression qui sert de source brute de nombres aléatoires uniformes, généralement la fonction RANDOM. Pour plus d’informations, voir Fonctions de génération de données Notes sur l’utilisation.
Renvoie¶
Si min
ou max
est un nombre à virgule flottante, UNIFORM renvoie un nombre à virgule flottante. Si min
et max
sont des entiers, UNIFORM renvoie un entier.
Notes sur l’utilisation¶
Cette fonction est liée à la fonction RANDOM , mais en est différente. Les deux fonctions génèrent des distributions uniformes, mais il existe des différences dans les plages des valeurs renvoyées.
RANDOM génère des entiers pseudo-aléatoires de 64 bits. Il accepte un seed facultatif qui permet de répéter les séquences.
UNIFORM génère des nombres entiers ou flottants aléatoires dans la plage spécifiée.
Exemples¶
Ces exemples montrent comment utiliser la fonction UNIFORM. Les valeurs affichées dans le résultat ci-dessous peuvent différer des valeurs renvoyées lorsque vous exécutez vous-même ces exemples.
Cet exemple génère cinq entiers aléatoires compris entre 1 et 10 (inclus) :
SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
| 6 |
| 1 |
| 8 |
| 5 |
| 6 |
+--------------------------+
Cet exemple génère cinq nombres à virgule flottante compris entre 0 et 1 (inclus) :
SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+---------------------------------------+
| UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) |
|---------------------------------------|
| 0.1180758313 |
| 0.4945805484 |
| 0.7113092833 |
| 0.06170806767 |
| 0.01635235156 |
+---------------------------------------+
Cet exemple montre que si l’argument gen
est une constante, la sortie est une constante :
SELECT UNIFORM(1, 10, 1234) FROM TABLE(GENERATOR(ROWCOUNT => 5));
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
| 7 |
| 7 |
| 7 |
| 7 |
| 7 |
+----------------------+