Funciones Rand y RandBetween
Se aplica a: Aplicaciones de Canvas Flujos de Escritorio Aplicaciones basadas en modelos Power Pages Power Platform CLI
Devuelve un número pseudoaleatorio.
Descripción
La función Rand devuelve un número seudoaleatorio que es mayor o igual que 0 y menor que 1. Por ejemplo, Rand() podría devolver 0,43147 y podría devolver 0 pero no 1.
La función RandBetween devuelve un número entero pseudoaleatorio (número entero sin parte decimal) que está entre dos números, inclusive. Por ejemplo, RandBetween( 1, 3 ) puede devolver 1, 2 o 3.
Funciones volátiles
Rand y RandBetween son funciones volátiles. Cada vez que se evalúa la función, esta devuelve un valor diferente.
Cuando se usa en una fórmula de flujo de datos, una función volátil solo devuelve un valor diferente si se vuelve a evaluar la fórmula en la que aparece. Si no hay ningún otro cambio en la fórmula, presenta el mismo valor durante la ejecución de la aplicación.
Por ejemplo, un control de etiqueta con Label1.Text = Rand() no cambiará mientras la aplicación esté activa. Solo se generará un nuevo valor si se cierra y se vuelve a abrir la aplicación.
Si la función forma parte de una fórmula en la que haya cambiado algún elemento más, se volverá a evaluar. Por ejemplo, si modificamos el ejemplo para incluir un control Slider con Label1.Text = Slider1.Value + Rand(), se generará un nuevo número aleatorio cada vez que cambie el valor del control Slider. Asimismo, se volverá a evaluar la propiedad de texto de la etiqueta. Encontrará el ejemplo a continuación.
Cuando se usan en una fórmula de comportamiento, Rand y RandBetween se evalúan cada vez que se evalúa la fórmula de comportamiento. Encontrará un ejemplo a continuación.
Sintaxis
Rand()
RandEntre( Abajo, Arriba )
- Abajo - Obligatorio. El entero menor que la función puede devolver.
- Arriba - Obligatorio. El entero mayor que la función puede devolver. Debe ser igual o mayor de Bottom.
Ejemplos
Uso básico
Fórmula | Descripción | Resultado |
---|---|---|
Rand() | Devuelve un pseudo número aleatorio mayor o igual que 0 y menor que 1. | Varía con cada evaluación, por ejemplo 0,874252. |
Rand() * 100 | Sobre la base del ejemplo anterior, utiliza la multiplicación para extender el rango a mayor o igual a 0 y menor a 100. | Varía con cada evaluación, por ejemplo 78,42521. |
Int(Rand() * 100) | Sobre la base del ejemplo anterior, utiliza la función Int para eliminar la parte decimal, lo que da como resultado un número entero mayor o igual a 0 y menor a 100 | Varía con cada evaluación, por ejemplo 84. |
RandEntre( 0, 99 ) | Basándose en el ejemplo anterior, realiza la misma operación utilizando la función RandBetween | Varía con cada evaluación, por ejemplo 21. |
Aleatorio entre (-1, 1) | Devuelve un número pseudoaleatorio que está entre -1 y 1 inclusive: -1, 0, o 1. | Varía con cada evaluación, por ejemplo -1. |
Mostrar un número aleatorio diferente a medida que cambia la entrada del usuario con Rand
Agregue un control Slider y, si tiene otro nombre, cámbielo a Slider1.
Agregue un control Label y establezca su propiedad Text en esta fórmula:
Control deslizante 1.Valor + Rand()
La etiqueta muestra 50, que es el valor predeterminado del control deslizante, más un decimal aleatorio:
Cambie el valor del control deslizante manteniendo la tecla Alt presionada.
Cada vez que cambie el valor del control deslizante, la parte decimal de la etiqueta mostrará un número aleatorio diferente:
Crea una tabla de números aleatorios con RandBetween
Agregue un control Button y establezca su propiedad OnSelect en esta fórmula:
ClearCollect(Números aleatorios, Para todos(Secuencia(100), AleatorioEntre(1, 20)))
Con esta fórmula, se crea una tabla de una sola columna que se usa para iterar 100 veces, lo que produce 100 números aleatorios.
Agregue una Data table, establezca su propiedad Items en RandomNumbers y muestre el campo Valor.
Haga clic en el botón o púlselo para seleccionarlo, manteniendo la tecla Alt presionada.
La tabla de datos muestra 100 cien números aleatorios entre 1 y 20:
Vuelva a seleccionar el botón para mostrar una lista de números aleatorios diferentes:
Para generar un solo número aleatorio en lugar de una tabla, use Set( RandomNumber, Rand()) o Set(RandNumber, RandBetween( 1, 20 ) ).