Funções Rand e RandBetween
Aplica-se a: Aplicativos Canvas Fluxos de desktop Aplicativos orientados a modelos Power Pages 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( Inferior, Superior )
- Inferior - Obrigatório. O menor número inteiro que a função pode retornar.
- Topo - 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. |
RandEntre( 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. |
RandEntre( -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
Adicione um controle Slider e renomeie-o como Slider1 se ele tiver um nome diferente.
Adicione um controle Label e defina sua propriedade Text com esta fórmula:
Slider1.Valor + Rand()
O rótulo mostrará 50 (o valor padrão do controle deslizante) e um decimal aleatório:
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:
Criar uma tabela de números aleatórios com RandBetween
Adicione um controle Button e defina sua propriedade OnSelect para esta fórmula:
ClearCollect(NúmerosAleatórios, ParaTodos(Sequência(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.
Adicione uma Data table, defina sua propriedade Items como RandomNumbers e exiba o campo Value.
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:
Selecione o botão novamente para mostrar uma lista diferente 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 ) ).