Rand と RandBetween 関数
適用対象: キャンバス アプリ デスクトップ フロー モデル駆動型アプリ Power Pages Power Platform CLI
疑似乱数を返します。
Description
Rand 関数は、0 以上 1 未満の疑似乱数を返します。 たとえば、Rand()は 0.43147 を返すかもしれませんが、1 ではなく 0 を返す可能性もあります。
RandBetween関数は、2 つの数値の間にある疑似乱数整数 (小数点なしの整数) を返します。 たとえば、RandBetween( 1, 3 ) では 1、2、または 3 を返す可能性があります。
Volatile 関数
Rand と RandBetween は揮発性関数です。 関数が評価されるたびに、別の値が返されます。
データ フロー数式で使用すると、揮発性の関数は、それが表示される数式が再評価される場合に別の値を返すだけです。 数式で何も変更されていない場合、アプリの実行全体を通じて同じ値を返します。
たとえば、Label1.Text = Rand() である Label コントロールは、アプリがアクティブな間は変化しません。 アプリを閉じてからもう一度開いた場合にのみ、新しい値が返ります。
関数は、他の何かが変更された数式の一部である場合に再評価されます。 たとえば、Label1.Text = Slider1.Value + Rand() である Slider コントロールを含むように例を変更した場合、Slider コントロールの値が変化するたびにラベルのテキスト プロパティが再評価されて、新しい乱数が生成されます。 この例については、以下を参照してください。
動作の数式 を使用すると、Rand と RandBetween は動作式が評価されるたびに評価されます。 例については、以下を参照してください。
構文
ランダム()
RandBetween( 下、 上 )
- 下部 - 必須。 関数が返す可能性がある最小の整数。
- Top - 必須。 関数が返す可能性がある最大の整数。 最小 と等しい、または大きな値である必要があります。
使用例
基本的な使用
式 | 説明設定 | 結果 |
---|---|---|
ランド() | 0 以上 1 未満の擬似乱数を返します。 | たとえば、0.874252 など、評価ごとに異なります。 |
ランダム()* 100 | 前の例に基づいて、乗算を使って、0 以上 100 未満に範囲を広げます。 | たとえば、78.42521 など、評価ごとに異なります。 |
整数(ランダム() * 100) | 前述例から、Int 関数を使って小数部分を取り除き、0 以上 100 未満の整数を生成します | たとえば、84 など、評価ごとに異なります。 |
ランダム間隔(0,99) | 前述の例を基に、RandBetween 関数を使って同じ操作を行います | たとえば、21 など、評価ごとに異なります。 |
ランダム中間値(-1, 1) | -1 から 1 までの疑似乱数を返します: : -1、0、1。 | たとえば、-1 など、評価ごとに異なります。 |
ユーザー入力が Rand で変化すると異なる乱数を表示します
Slider コントロールを追加し、別の名前になっている場合は Slider1 に名前を変更します。
Label コントロールを追加し、その Text プロパティを次の数式に設定します。
スライダー1.値 + Rand()
50 (スライダーの既定値) にランダムな小数を加えた値が、ラベルに表示されます。
Alt キーを押しながら、スライダーの値を変更します。
スライダーの値を変更するたびに、ラベルの小数部分に異なる乱数が表示されます。
RandBetween を使用して乱数表を作成します
Button コントロールを追加し、その OnSelect プロパティを次の数式に設定します。
ClearCollect( ランダム数値、ForAll( シーケンス( 100 )、RandBetween( 1, 20 ) ))
この式は、100 回反復して 100 つの乱数を生成するために使用される単一列のテーブルを作成します。
Data table を追加し、その Items プロパティを RandomNumbers に設定して、Value フィールドを表示します。
Alt キーを押しながら、クリックまたはタップしてボタンを選択します。
データ テーブルは、1 から 20 までの乱数 100 個が表示されています。
もう一度ボタンを選択すると、別の乱数のリストが表示されます。
テーブルの代わりに単一の乱数を生成する場合は、Set( RandomNumber, Rand() ) または Set( RandNumber, RandBetween( 1, 20 ) ) を使用します。