- 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¶
minUne constante spécifiant la valeur minimale (incluse) du nombre généré.
maxUne constante spécifiant la valeur maximale (incluse) du nombre généré.
genExpression 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 |
+----------------------+