Funciones Rand y RandBetween

Se aplica a: Aplicaciones de lienzo Flujos de escritorio Aplicaciones basadas en modelos 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 función volátil. 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()

RandBetween( Bottom, Top )

  • Bottom - Obligatorio. El entero menor que la función puede devolver.
  • Top - 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.
RandBetween( 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.
RandBetween( -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

  1. Agregue un control Slider y, si tiene otro nombre, cámbielo a Slider1.

  2. Agregue un control Label y establezca su propiedad Text en esta fórmula:

    Slider1.Value + Rand()

    La etiqueta muestra 50, que es el valor predeterminado del control deslizante, más un decimal aleatorio:

    Pantalla en la que se muestra un control de etiqueta con 50,741.

  3. 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:

    Cuatro pantallas en las que se muestra un control de etiqueta con cuatro valores decimales aleatorios para cada una de las cuatro opciones de configuración de control deslizante diferentes: 70,899, 84,667, 90,134 y 99,690.

Crea una tabla de números aleatorios con RandBetween

  1. Agregue un control Button y establezca su propiedad OnSelect en esta fórmula:

    ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 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.

  2. Agregue una Data table, establezca su propiedad Items en RandomNumbers y muestre el campo Valor.

    Origen de datos selección de la colección RandomNumbers.

  3. 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:

    Tabla de datos con 100 cien números aleatorios.

  4. Vuelva a seleccionar el botón para mostrar una lista de números aleatorios diferentes:

    La misma pantalla que muestra una tabla de datos con un nuevo conjunto de números aleatorios.

Para generar un solo número aleatorio en lugar de una tabla, use Set( RandomNumber, Rand()) o Set(RandNumber, RandBetween( 1, 20 ) ).