Funcions Rand i RandBetween
S'aplica a: Aplicacions de llenç Fluxos d'escriptori CLI d'aplicacions Power Pages Power Platform basades en models
Retorna un número pseudo-aleatori.
Descripció
La funció Rand retorna un número pseudo-aleatori que és major o igual que 0 i inferior a 1. Per exemple, Rand() podria tornar 0,43147 i podria tornar 0, però no 1.
La funció RandBetween retorna un enter pseudoaleatori (nombre enter sense porció decimal) que es troba entre dos nombres, inclosos. Per exemple, RandBetween( 1, 3 ) pot retornar 1, 2 o 3.
Funcions volàtils
Rand i RandBetween són funcions volàtils. Cada vegada que s'avalua la funció, torna un valor diferent.
Quan s'utilitza en una fórmula de flux de dades, una funció volàtil només retornarà un valor diferent si la fórmula en què apareix es torna a avaluar. Si no es canvia res més a la fórmula, tindrà el mateix valor durant l'execució de l'aplicació.
Per exemple, un control d'etiqueta amb Label1.Text = Rand() no canviarà mentre l'aplicació estigui activa. Només s'obtindrà un valor nou si es tanca l'aplicació i es torna a obrir.
La funció es tornarà a avalua si forma part d'una fórmula on s'ha canviat una altra cosa. Per exemple, si canviem l'exemple per implicar un control lliscant amb Label1.Text = Slider1.Value + Rand(),, es genera un nou número aleatori cada vegada que el valor del control lliscant canvia i es torna a avaluar la propietat de text de l'etiqueta. Vegeu-ne l'exemple a continuació.
Quan s'utilitza en una fórmula de comportament, Rand i RandBetween s'avaluaran cada vegada que s'avaluï la fórmula de comportament. Vegeu-ne un exemple a continuació.
Sintaxi
Rand()
RandBetween ( inferior, superior )
- Inferior : obligatori. L'enter més petit que la funció pot retornar.
- A dalt : obligatori. L'enter més gran que la funció pot retornar. Ha de ser igual o major que Inferior.
Exemples
Ús bàsic
Fórmula | Descripció | Resultat |
---|---|---|
Rand() | Retorna un nombre pseudoaleatori més gran o igual que 0 i més petit que 1. | Varia amb cada avaluació, per exemple 0,874252. |
Rand() * 100 | A l'exemple anterior, s'utilitza la multiplicació per ampliar l'interval a més o igual a 0 i menys que 100. | Varia amb cada avaluació, per exemple 78,42521. |
Int( Rand() * 100 ) | En l'exemple anterior, s'utilitza la funció Int per eliminar la part decimal, resultant en un enter superior o igual que 0 i inferior a 100 | Varia amb cada avaluació, per exemple 84. |
RandEntre( 0, 99 ) | En l'exemple anterior, es realitza la mateixa operació amb la funció RandBetween. | Varia amb cada avaluació, per exemple 21. |
RandEntre( -1, 1 ) | Retorna un nombre pseudoaleatori situat entre -1 i 1, inclosos: -1, 0 o 1. | Varia amb cada avaluació, per exemple -1. |
Visualitzar un número aleatori diferent amb els canvis d'entrada de l'usuari amb Rand
Afegiu un Control lliscant i canvieu-ne el nom per Slider1 si té un nom diferent.
Afegiu un control Etiqueta i definiu-ne la propietat Text en aquesta fórmula:
Valor lliscant 1 + Rand()
L'etiqueta mostra 50 (el valor per defecte del control lliscant) més un decimal aleatori:
Mentre manteniu premuda la tecla Alt, canvieu el valor del control lliscant.
Cada vegada que canvieu el valor del control lliscant, la part decimal de l'etiqueta mostra un número aleatori diferent:
Crear una taula de nombres aleatoris amb RandBetween
Afegiu un control Button i definiu-ne la propietat OnSelect a aquesta fórmula:
ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 1, 20 ) ))
Aquesta fórmula crea una taula d'una sola columna que s'utilitza per iterar 100 vegades i que resulta en 100 números aleatoris.
Afegiu un control Taula de dades, definiu-ne la propietat Items com a RandomNumbers i mostreu el camp Valor.
Mentre manteniu premuda la tecla Alt, seleccioneu el botó fent-hi clic o tocant-lo.
La taula de dades mostra 100 (cent) nombres aleatoris entre 1 i 20:
Torneu a seleccionar el botó per mostrar una llista diferent de números aleatoris:
Per generar un sol nombre aleatori en comptes d'una taula, utilitzeu Set( RandomNumber, Rand() ) o Set ( RandNumber, RandBetween( 1, 20 ) ).