Funções Rand RandBetween
Aplica-se a: Canvas apps Fluxos de área de trabalho CLI de aplicativos Power Pages Power Platform orientados por modelo
Devolve um número pseudoaleatório.
Descrição
A função Rand devolve um número pseudoaleatório que é maior ou igual a 0 e menor do que a 1. Por exemplo, Rand() pode devolver 0,43147 e pode devolver 0, mas não 1.
A função RandBetween devolve um número inteiro pseudoaleatório (número inteiro sem porção decimal) entre dois números, inclusive. Por exemplo RandBetween( 1, 3 ) pode devolver 1, 2 ou 3.
Funções Voláteis
Rand e RandBetween são funções voláteis. Sempre que a função é avaliada, devolve um valor diferente.
Quando for utilizada numa fórmula de fluxos de dados, uma função volátil só irá devolver um valor diferente se a fórmula em que aparece for reavaliada. Se nada mais for alterado na fórmula, esta terá o mesmo valor durante a execução da sua aplicação.
Por exemplo, um controlo label com Label1.Text = Rand() não será alterado enquanto a sua aplicação estiver ativa. Só resultará num novo valor se fechar e voltar a abrir a aplicação.
A função será reavaliada se fizer parte de uma fórmula em que algo foi alterado. Por exemplo, se alterarmos o nosso exemplo para incluir um Controlo de Deslize com Label1.Text = Slider1.Value + Rand(), será gerado um novo número aleatório sempre que o valor do controlo Slider for alterado e a propriedade de texto da etiqueta for reavaliada. Veja este exemplo abaixo.
Quando são utilizadas numa fórmula de comportamento, as funções Rand e RandBetween serão avaliadas sempre que a fórmula de comportamento for avaliada. Veja um exemplo abaixo.
Sintaxe
Rand()
RandBetween( Baixo, Topo )
- Inferior - Obrigatório. O menor número inteiro que a função pode devolver.
- Top - Obrigatório. O maior número inteiro que a função pode devolver. Tem de ser maior ou igual a Bottom.
Exemplos
Utilização básica
Fórmula | Descrição | Resultado |
---|---|---|
Rand() | Devolve um número pseudoaleatório que é maior ou igual a 0 e menor do que 1. | Varia em cada avaliação, por exemplo, a 0,874252. |
Rand() * 100 | Com base no exemplo anterior, utiliza a multiplicação para expandir o intervalo para um valor maior ou igual a 0 e menor do que 100. | Varia em cada avaliação, por exemplo, a 78,42521. |
Int( Rand() * 100 ) | Com base no exemplo anterior, utiliza a função Int para remover a porção decimal, resultando num número inteiro maior que ou igual a 0 e menor do que 100 | Varia em cada avaliação, por exemplo, a 84. |
RandBetween( 0, 99 ) | Com base no exemplo anterior, executa a mesma operação utilizando a função RandBetween | Varia em cada avaliação, por exemplo, a 21. |
RandBetween( -1, 1 ) | Devolve um número pseudoaleatório que está entre -1 e 1, incluindo: -1, 0 ou 1. | Varia em cada avaliação, por exemplo, a -1. |
Apresentar um número aleatório diferente quando a entrada do utilizador é alterada com Rand
Adicione um controlo Slider e mude o respetivo nome para Slider1, se este tiver um nome diferente.
Adicione um controlo Label e defina a respetiva propriedade Text para esta fórmula:
Slider1.Value + Rand()
A etiqueta mostra 50 (o valor predefinido para o Controlo de Deslize) e um número decimal aleatório:
Mantenha a tecla Alt premida e altere o valor do Controlo de Deslize.
Sempre que alterar o valor do Controlo de Deslize, a porção decimal da etiqueta mostrará um número aleatório diferente:
Criar uma tabela de números aleatórios com RandBetween
Adicione um controlo Button e defina a respetiva propriedade OnSelect para esta fórmula:
ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 1, 20 ))
Esta fórmula cria uma tabela com uma única coluna que é utilizada para iterar 100 vezes, o que resulta em 100 números aleatórios.
Adicione um controlo Data table, defina a respetiva propriedade Items para RandomNumbers e mostre o campo Value.
Mantenha a tecla Alt premida e selecione o botão ao clique ou toque no mesmo.
A tabela de dados mostra 100 números aleatórios entre 1 e 20:
Selecione o botão novamente para mostrar uma lista de números aleatórios diferente:
Para gerar um único número aleatório em vez de uma tabela, utilize Set( RandomNumber, Rand() ) ou Set( RandNumber, RandBetween( 1, 20 ) ).