Fonctions Rand et RandBetween

S’applique à : Applications canevas Flux de bureau Applications pilotées par modèle CLI Power Platform

Permet de renvoyer un nombre pseudo-aléatoire.

Description

La fonction Rand retourne un nombre pseudo-aléatoire supérieur ou égal à 0, et inférieur à 1. Par example, Rand() pourrait renvoyer 0.43147 et pourrait renvoyer 0, mais pas 1.

La fonction RandBetween renvoie un entier pseudo-aléatoire (nombre entier sans partie décimale) compris entre deux nombres inclus. Par example, RandBetween ( 1, 3) peut renvoyer 1, 2 ou 3.

Fonctions volatiles

Rand et RandBetween sont des fonctions volatiles. Chaque fois que la fonction est évaluée, elle retourne une valeur différente.

Quand elle est utilisée dans une formule de flux de données, une fonction volatile retourne une valeur différente seulement si la formule dans laquelle elle apparaît est réévaluée. Si rien d’autre ne change dans la formule, elle aura la même valeur pendant toute l’exécution de votre application.

Par exemple, un contrôle d’étiquette Label1.Text = Rand() ne change pas pendant que votre application est active. Seule la fermeture de l’application suivie de sa réouverture aboutit à une nouvelle valeur.

La fonction est réévaluée si elle fait partie d’une formule où quelque chose d’autre a changé. Par exemple, si nous modifions notre exemple en y intégrant un contrôle Slider avec Label1.Text = Slider1.Value + Rand(), un nouveau nombre aléatoire est généré chaque fois que la valeur du contrôle Slider change et la propriété Text de l’étiquette est réévaluée. Cet exemple est donné ci-dessous.

Quand elles sont utilisées dans une formule de comportement, les fonctions volatiles Rand et RandBetween sont évaluées chaque fois que la formule de comportement est évaluée. Un exemple est donné ci-dessous.

Syntaxe

Rand()

RandBetween( Bottom, Top )

  • Bottom : obligatoire. Nombre le plus petit que la fonction puisse retourner.
  • Top : obligatoire. Nombre le plus grand que la fonction puisse retourner. Doit être supérieur ou égal à la valeur Bottom

Exemples

Utilisation de base

Formule Description Result
Rand() Retourne un nombre pseudo aléatoire supérieur ou égal à 0 et inférieur à 1. Varie avec chaque évaluation, par exemple 0.874252.
Rand() * 100 En s’appuyant sur l’exemple précédent, utilise la multiplication pour étendre la plage à une valeur supérieure ou égale à 0 et inférieure à 100. Varie avec chaque évaluation, par exemple 78.42521.
Int( Rand() * 100 ) S’appuyant sur l’exemple précédent, utilise la fonction Int pour supprimer la partie décimale, résultant en un entier supérieur ou égal à 0 et inférieur à 100 Varie avec chaque évaluation, par exemple 84.
RandBetween( 0, 99 ) Selon l’exemple précédent, effectue la même opération en utilisant la fonction RandBetween Varie avec chaque évaluation, par exemple 21.
RandBetween( -1, 1 ) Renvoie un nombre pseudo-aléatoire compris entre -1 et 1 inclus : -1, 0 ou 1. Varie avec chaque évaluation, par exemple -1.

Affiche un nombre aléatoire différent en fonction de l’entrée de l’utilisateur avec Rand

  1. Ajoutez un contrôle Slider et renommez-le Slider1 s’il a un autre nom.

  2. Ajoutez un contrôle Label et définissez sa propriété Text sur cette formule :

    Slider1.Value + Rand()

    L’étiquette affiche 50 (la valeur par défaut pour le curseur) plus un nombre décimal aléatoire :

    Écran affichant un contrôle d’étiquette avec la valeur 50,741.

  3. Tout en maintenant enfoncée la touche Alt, changez la valeur du curseur.

    Chaque fois que vous changez la valeur du curseur, la partie décimale de l’étiquette affiche un nombre aléatoire différent :

    Quatre écrans affichant un contrôle d’étiquette avec quatre valeurs décimales aléatoires différentes pour chacune des quatre valeurs de curseur différentes : 70.899, 84.667, 90.134, 99.690.

Créer une table de nombres aléatoires avec RandBetween

  1. Ajoutez un contrôle Button, puis définissez sa propriété OnSelect sur la formule suivante :

    ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 1, 20 ) ))

    Cette formule crée un tableau d’une seule colonne qui est utilisé pour boucler 100 fois, ce qui produit 100 nombres aléatoires.

  2. Ajoutez un contrôle Data table, définissez sa propriété Items sur RandomNumbers et affichez le champ Value.

    Sélection de la source de données de la collection RandomNumbers.

  3. Tout en maintenant la touche Alt enfoncée, cliquez ou appuyez sur le bouton pour le sélectionner.

    Le tableau de données montre 100 cent nombres aléatoires entre 1 et 20 :

    Table de données avec 100 cent nombres aléatoires.

  4. Cliquez à nouveau sur le bouton pour afficher une liste de nombres aléatoires différente :

    Le même écran montrant une table de données avec un nouvel ensemble de nombres aléatoires.

Pour générer un seul nombre aléatoire au lieu d’une table, utilisez Set( RandomNumber, Rand() ) ou Set( RandNumber, RandBetween( 1, 20 ) ).