Funções Rand e RandBetween

Aplica-se a: Aplicativos de tela Fluxos da área de trabalho Aplicativos baseados em modelo Power Platform CLI

Retorna um número pseudoaleatório.

Descrição

A função Rand retorna um número pseudoaleatório maior que ou igual a 0, mas menor que 1. Por exemplo, Rand() poderia retornar 0,43147 e poderia retornar 0 mas não 1.

A função RandBetween retorna um inteiro pseudoaleatório (número inteiro sem a parte decimal) que está entre dois números, inclusive. Por exemplo, RandBetween( 1, 3 ) pode retornar 1, 2 ou 3.

Funções voláteis

Rand e RandBetween são funções voláteis. Cada vez que a função é avaliada, ela retorna um valor diferente.

Quando usada em uma fórmula de fluxo de dados, uma função volátil retornará um valor diferente apenas se a fórmula em que ela aparece for reavaliada. Se nada mais mudar na fórmula, ela terá o mesmo valor durante a execução do aplicativo.

Por exemplo, um controle de rótulo com Label1.Text = Rand() não será alterado enquanto o aplicativo estiver ativo. Somente fechar e abrir o aplicativo novamente resultará em um novo valor.

A função será reavaliada se fizer parte de uma fórmula em que algo tenha sido alterado. Por exemplo, se o exemplo for alterado para envolver um controle deslizante com Label1.Text = Slider1.Value + Rand(), um novo número aleatório será gerado toda vez que o valor do controle Slider for alterado e a propriedade de texto do rótulo for reavaliada. Veja esse exemplo abaixo.

Quando usado em uma fórmula de comportamento, Rand e RandBetween será avaliado sempre que a fórmula de comportamento for avaliada. Veja um exemplo abaixo.

Sintaxe

Rand()

RandBetween( Bottom, Top )

  • Bottom - obrigatório. O menor número inteiro que a função pode retornar.
  • Top - obrigatório. O maior número inteiro que a função pode retornar. Deve ser igual ou superior a Bottom.

Exemplos

Uso básico

Fórmula Descrição Result
Rand() Retorna um número pseudoaleatório maior ou igual a 0, mas menor do que 1. Varia em cada avaliação, por exemplo, 0,874252.
Rand() * 100 Com base no exemplo anterior, usa a multiplicação para estender o intervalo para maior ou igual a 0 e menor do que 100. Varia em cada avaliação, por exemplo, 78,42521.
Int( Rand() * 100 ) Com base no exemplo anterior, usa a função Int para remover a parte decimal, resultando em um inteiro maior ou igual a 0 e menor do que 100 Varia em cada avaliação, por exemplo, 84.
RandBetween( 0, 99 ) Com base no exemplo anterior, executa a mesma operação usando a função RandBetween Varia em cada avaliação, por exemplo, 21.
RandBetween( -1, 1 ) Retorna um número pseudoaleatório entre -1 e 1 inclusive: -1, 0 ou 1. Varia em cada avaliação, por exemplo, -1.

Exibir um número aleatório diferente conforme a entrada do usuário é alterada com Rand

  1. Adicione um controle Slider e renomeie-o como Slider1 se ele tiver um nome diferente.

  2. Adicione um controle Label e defina sua propriedade Text com esta fórmula:

    Slider1.Value + Rand()

    O rótulo mostrará 50 (o valor padrão do controle deslizante) e um decimal aleatório:

    Uma tela exibindo um controle de rótulo com 50.741.

  3. Mantenha a tecla Alt pressionada e altere o valor do controle deslizante.

    Sempre que você alterar o valor do controle deslizante, a parte decimal do rótulo mostrará um número aleatório diferente:

    Quatro telas exibindo um controle de rótulo com quatro valores decimais aleatórios diferentes para todos as quatro configurações diferentes de controle deslizante: 70,899; 84,667; 90,134 e 99,690.

Criar uma tabela de números aleatórios com RandBetween

  1. Adicione um controle Button e defina sua propriedade OnSelect para esta fórmula:

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

    Essa fórmula cria uma tabela de coluna única usada para iterar 100 vezes, resultando em 100 números aleatórios.

  2. Adicione uma Data table, defina sua propriedade Items como RandomNumbers e exiba o campo Value.

    Seleção de fonte de dados da coleção RandomNumbers.

  3. Mantendo a tecla Alt pressionada, selecione o botão clicando ou tocando nele.

    A tabela de dados mostra 100 centenas de números aleatórios entre 1 e 20:

    Tabela de dados com 100 centenas de números aleatórios.

  4. Selecione o botão novamente para mostrar uma lista diferente de números aleatórios:

    A mesma tela mostrando uma tabela de dados com um novo conjunto de números aleatórios.

Para gerar um único número aleatório em vez de uma tabela, use Set( RandomNumber, Rand() ) ou Set( RandNumber, RandBetween( 1, 20 ) ).