カテゴリ:

データ生成関数

UNIFORM

[min, max] を含む範囲で一様分布の疑似乱数を生成します。

構文

UNIFORM( <min> , <max> , <gen> )
Copy

引数

min

生成された数値の最小値(最小値を含む)を指定する定数。

max

生成された数値の最大値(最大値を含む)を指定する定数。

gen

一様乱数の生のソースとして機能する式で、通常は RANDOM 関数です。詳細については、データ生成関数 使用上の注意 をご参照ください。

戻り値

min または max のいずれかまたは両方が浮動小数点数の場合、 UNIFORM は浮動小数点数を返します。 minmax の両方が整数の場合、 UNIFORM は整数を返します。

使用上の注意

この関数は RANDOM 関数に関連しますが、異なります。どちらの関数も一様分布を生成しますが、返される値の範囲には違いがあります。

  • RANDOM は、擬似乱数64ビット整数を生成します。シーケンスを繰り返すことができるオプションのシードを受け入れます。

  • UNIFORM は、指定された範囲でランダムな整数または浮動小数点数を生成します。

次の例は、UNIFORM 関数の使用方法を説明しています。以下の出力に表示される値は、これらの例を自分で実行したときに返される値とは異なる場合があります。

この例では、1から10(両端を含む)の範囲でランダムな整数を5つ生成します。

SELECT UNIFORM(1, 10, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+--------------------------+
| UNIFORM(1, 10, RANDOM()) |
|--------------------------|
|                        6 |
|                        1 |
|                        8 |
|                        5 |
|                        6 |
+--------------------------+

この例では、0から1(両端を含む)の範囲で5つの浮動小数点数を生成します。

SELECT UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+---------------------------------------+
| UNIFORM(0::FLOAT, 1::FLOAT, RANDOM()) |
|---------------------------------------|
|                         0.1180758313  |
|                         0.4945805484  |
|                         0.7113092833  |
|                         0.06170806767 |
|                         0.01635235156 |
+---------------------------------------+

この例は、 gen 引数が定数の場合、出力も定数になることを示しています。

SELECT UNIFORM(1, 10, 1234) FROM TABLE(GENERATOR(ROWCOUNT => 5));
Copy
+----------------------+
| UNIFORM(1, 10, 1234) |
|----------------------|
|                    7 |
|                    7 |
|                    7 |
|                    7 |
|                    7 |
+----------------------+