Funcións Rand e Rand Entre
Aplícase a: Aplicacións de lenzo Fluxos de escritorio Aplicacións baseadas en modelos Power Pages Power Platform CLI
Devolve un número pseudo-aleatorio.
Descripción
A función Rand devolve un número pseudo-aleatorio maior ou igual a 0 e inferior a 1. Por exemplo, Rand() podería devolver 0.43147 e podería devolver 0 pero non 1.
A función RandBetween devolve un número enteiro pseudoaleatorio (número enteiro sen porción decimal) que está entre dous números, incluídos. Por exemplo, RandBetween( 1, 3 ) pode devolver 1, 2 ou 3.
Funcións volátiles
Rand e RandBetween son función volátil. Cada vez que se avalía a función, devólvese un valor diferente.
Cando se usa nunha fórmula de fluxo de datos, unha función volátil só devolverá un valor diferente só se se reevalúa a fórmula na que aparece. Se nada cambia na fórmula, terá o mesmo valor durante toda a execución da súa aplicación.
Por exemplo, un control de etiqueta con Label1.Text = Rand() non cambiará mentres a aplicación estea activa. Só o peche e a reapertura da aplicación darán lugar a un valor novo.
A función reevaluarase se forma parte dunha fórmula na que algo máis cambiou. Por exemplo, se cambiamos o noso exemplo para implicar un control deslizante con Label1.Text = Slider1.Value + Rand(), entón un novo número aleatorio xérase cada vez que cambie o valor do control deslizante e vólvese avaliar a propiedade do texto da etiqueta. Vexa a continuación este exemplo.
Cando se usa nunha fórmula de comportamento, Rand e RandBetween avaliarase cada vez que se avalíe a fórmula de comportamento. Vexa a continuación un exemplo.
Sintaxe
Rand()
RandBetween( Abaixo, Arriba )
- Abaixo - Obrigatorio. Número enteiro máis pequeno que pode devolver a función.
- Arriba - Obrigatorio. Número enteiro máis grande que pode devolver a función. Debe ser igual ou superior a Bottom.
Exemplos
Uso básico
Fórmula | Descripción | Resultado |
---|---|---|
Rand() | Devolve un número pseudo-aleatorio maior ou igual a 0 e inferior a 1. | Varía con cada avaliación, por exemplo 0.874252. |
Rand() * 100 | Partindo do exemplo anterior, utiliza a multiplicación para ampliar o intervalo a maior ou igual a 0 e inferior a 100. | Varía con cada avaliación, por exemplo 78.42521. |
Int( Rand() * 100) | Partindo do exemplo anterior, utiliza a función Int para eliminar a parte decimal, dando como resultado un número enteiro maior ou igual a 0 e inferior a 100 | Varía con cada avaliación, por exemplo 84. |
RandBetween (0, 99) | Partindo do exemplo anterior, realiza a mesma operación mediante a función RandBetween | Varía con cada avaliación, por exemplo 21. |
RandBetween(-1, 1) | Devolve un número pseudoaleatorio que está entre -1 e 1 incluídos: -1, 0 ou 1. | Varía con cada avaliación, por exemplo -1. |
Amosar un número aleatorio diferente a medida que cambia a entrada do usuario con Rand
Engada un control deslizante e renoméeo Slider1 se ten un nome diferente.
Engada un control de Etiqueta e configure a súa propiedade de Texto nesta fórmula:
Slider1.Value + Rand()
A etiqueta mostra 50 (o valor por defecto do control deslizante) mais un decimal aleatorio:
Mentres mantén premida a tecla Alt, cambia o valor do control deslizante.
Cada vez que cambia o valor do control deslizante, a parte decimal da etiqueta mostra un número aleatorio diferente:
Crear unha táboa de números aleatorios con RandBetween
Engada un control de Button e axuste a súa propiedade OnSelect nesta fórmula:
ClearCollect(Números aleatorios, ForAll(Secuencia(100), RandBetween(1,20)))
Esta fórmula crea unha táboa dunha única columna que se usa para repetir 100 veces, obtendo 100 números aleatorios.
Engada unha Táboa de datos, estableza a súa propiedade Elementos en RandomNumbers e mostre o campo Valor.
Mantendo premida a tecla Alt, seleccione o botón facendo clic ou tocándoo.
A táboa de datos mostra 100 cen números aleatorios entre 1 e 20:
Seleccione de novo o botón para mostrar unha lista diferente de números aleatorios:
Para xerar un único número aleatorio no canto dunha táboa, use Set( RandomNumber, Rand() ) ou Set( RandNumber, RandBetween( 1, 20 ) ).