Funkcja Rand i RandBetween
Dotyczy: Aplikacje kanwy Przepływy pulpitu Aplikacje oparte na modelu Power Pages Power Platform CLI
Zwraca liczbę pseudolosową.
Popis
Funkcja Rand zwraca liczbę pseudolosową większą lub równą 0 i mniejszą od 1. Na przykład Rand() może zwrócić 0.43147 i może zwrócić 0, ale nie 1.
Funkcja RandBetween zwraca losową liczbę całkowitą (liczbę całkowitą bez części dziesiętnej) mniejszą od dwóch liczb. Na przykład w RandBetween( 1, 3 ) może zwrócić 1, 2 lub 3.
Funkcje nietrwałe
Rand i RandBetween to funkcje niestabilne. Każde wywołanie funkcji zwraca inną wartość.
Funkcja nietrwała używana w formule przepływu danych zwróci inną wartość tylko wtedy, gdy formuła, w której ta funkcja się znajduje, zostanie obliczona ponownie. Jeśli nic innego się nie zmieni, funkcja będzie mieć taką samą wartość podczas wykonywania aplikacji.
Na przykład kontrolka etykiety z tekstem Label1.Text = Rand() nie ulegnie zmianie, gdy aplikacja będzie aktywna. Tylko zamknięcie i ponowne otwarcie aplikacji spowoduje zwrócenie nowej wartości.
Funkcja zostanie obliczona ponownie, jeśli jest częścią formuły, w której zmienił się inny element. Jeśli na przykład zmienimy nasz przykład tak, aby uwzględniał kontrolkę slider z tekstem Label1.Text = Slider1.Value + Rand(), nowa liczba będzie losowo generowana za każdym razem, gdy wartość kontrolki Slider zmieni się, a właściwość tekstu etykiety będzie ponownie obliczana. Zobacz ten przykład poniżej.
W przypadku użycia w formule zachowania funkcja Rand i RandBetween będzie obliczana zawsze, gdy będzie obliczana wartość formuły zachowania. Zobacz przykład poniżej.
Składnia
Rand()
RandBetween( Bottom, Top )
- Dolny — wymagane. Najmniejsza liczba całkowita, jaką może zwrócić funkcja.
- Górny - wymagane. Największa liczba całkowita, jaką może zwrócić funkcja. Musi być równy lub większy niż Dolne.
Przykłady
Podstawowy sposób użycia
Formuła | Opis | Result |
---|---|---|
Rand() | Zwraca liczbę pseudolosową większą lub równą 0 i mniejszą od 1. | Różnią się w poszczególnych ocenach, na 0,874252. |
Rand() * 100 | Na podstawie poprzedniego przykładu użyto kedytowania w celu rozszerzenia zakresu do większej lub równej 0 i mniejszej niż 100. | Różnią się w poszczególnych ocenach, na 78,42521. |
Int( Rand() * 100 ) | Opierając się na poprzednim przykładzie, używa funkcji Int do usunięcia części dziesiętnej, co daje w wyniku liczbę całkowitą większą lub równą 0 i mniejszą niż 100 | Różnią się w poszczególnych ocenach, na 84. |
RandBetween( 0, 99 ) | Korzystając z poprzedniego przykładu, wykonuje tę samą operację przy użyciu funkcji RandBetween | Różnią się w poszczególnych ocenach, na 21. |
RandBetween( -1, 1 ) | Zwraca pseudolosową liczbę z zakresu od -1 do 1 włącznie: -1, 0 lub 1. | Różnią się w poszczególnych ocenach, na -1. |
Wyświetlanie innej liczby losowej w przypadku wprowadzania zmian przez użytkownika z Rand
Dodaj kontrolkę Slider i zmień jej nazwę na Slider1, jeśli ma inną nazwę.
Dodaj kontrolkę Label i ustaw jej właściwość Text na następującą formułę:
Slider1.Value + Rand()
Etykieta zawiera liczbę 50 (wartość domyślną suwaka) i losową wartość dziesiętną:
Trzymając naciśnięty klawisz Alt, zmień wartość suwaka.
Przy każdej zmianie wartości suwaka część dziesiętna etykiety będzie zawierać inną liczbę losową:
Tworzenie tabeli liczb losowych przy użyciu funkcji RandBetween
Dodaj kontrolkę Button i ustaw jej właściwość OnSelect na następującą formułę:
ClearCollect( RandomNumbers, ForAll( Sequence( 100 ), RandBetween( 1, 20 ) ))
Ta formuła tworzy jednokolumnową tabelę, która jest używana do iteracji 100 razy, co daje 100 losowych liczb.
Dodaj Data table, ustaw jej właściwość Items na RandomNumbers i wyświetl pole Wartość.
Trzymając naciśnięty klawisz Alt, wybierz przycisk przez kliknięcie lub dotknięcie.
W tabeli danych jest liczba losowa 1000 z liczb od 1 do 20:
Wybierz przycisk ponownie, aby wyświetlić inną listę liczb losowych:
Aby wygenerować pojedynczą liczbę losową zamiast tabeli, użyj Set( RandomNumber, Rand() ) lub Set( RandNumber, RandBetween( 1, 20 ) ).