乱数を生成する関数
このセクションのすべての関数は、引数を 0 個または 1 個だけ取ります。引数(指定された場合)の唯一の用途は、common subexpression elimination を防ぎ、同じ行内で同じ乱数関数を 2 回評価した場合でも、異なる乱数値が返されるようにすることです。
関連コンテンツ
乱数は暗号用途を想定していないアルゴリズムによって生成されます。
以下のドキュメントは、system.functions システムテーブルから生成されています。
fuzzBits
導入バージョン: v20.5.0
入力文字列 s の各ビットを、確率 p で反転させます。
構文
引数
s— ビットのファジングを行う対象のStringまたはFixedString。StringまたはFixedStringp— 各ビットを反転させる確率を表す0.0から1.0の数値。Float*
戻り値
s と同じ型のファジングされた文字列を返します。String または FixedString
例
使用例
rand
導入バージョン: v1.1.0
一様分布に従う UInt32 型の乱数を返します。
線形合同法による擬似乱数生成器を使用しており、初期状態はシステムから取得されます。そのため見かけ上はランダムに見えますが、真の乱数ではなく、初期状態が既知の場合には予測可能になり得ます。 真のランダム性が重要となるシナリオでは、システムレベルの呼び出しや外部ライブラリとの連携など、代替手段の利用を検討してください。
構文
別名: rand32
引数
x— 省略可能で、指定しても無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われないようにすることです。Any
返り値
UInt32 型の乱数を返します。UInt32
例
使用例
rand64
導入バージョン: v1.1.0
一様分布に従うランダムな UInt64 型の値を返します。
初期状態をシステムから取得した線形合同法による疑似乱数生成器を使用します。そのため見かけ上はランダムですが、真の乱数ではなく、初期状態が既知であれば予測可能です。 真のランダム性が重要となるシナリオでは、システムレベルの呼び出しや外部ライブラリとの連携など、代替手段の利用を検討してください。
構文
引数
x— 省略可能で、指定しても無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われるのを防ぐことです。Any
戻り値
一様分布に従う UInt64 型の乱数を返します。UInt64
例
使用例
randBernoulli
導入バージョン: v22.10.0
ベルヌーイ分布に従う Float64 型の乱数値を返します。
構文
引数
probability— 成功確率を表す0以上1以下の値。Float64x— 省略可能で、値は使用されません。同じ関数呼び出しがクエリ内で複数回使用される場合に、共通部分式除去 を防ぐためだけに存在する引数です。Any
戻り値
指定されたベルヌーイ分布に従うランダムな Float64 値を返します。UInt64
例
使用例
randBinomial
導入バージョン: v22.10.0
二項分布に従う Float64 型の乱数を返します。
構文
引数
experiments— 実験の回数UInt64probability— 各実験における成功確率(0から1の間の値)Float64x— 省略可能であり、評価も無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われるのを防ぐことです。Any
戻り値
指定された二項分布からサンプリングされたランダムな Float64 値を返します。UInt64
例
使用例
randCanonical
導入バージョン: v22.11.0
0以上1未満の一様分布に従う Float64 型の乱数を返します。
構文
引数
x— 省略可能であり、無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われるのを防ぐことです。Any
返される値
ランダムな Float64 型の数値を返します。Float64
例
使用例
randChiSquared
導入バージョン: v22.10.0
カイ二乗分布に従う乱数の Float64 値を返します。
構文
引数
degree_of_freedom— 自由度。Float64x— 省略可能で、無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に、common subexpression elimination が行われるのを防ぐことです。Any
戻り値
指定されたカイ二乗分布から生成された乱数の Float64 値を返します。Float64
例
使用例
randConstant
導入バージョン: v1.1.0
現在のクエリ実行内のすべての行で一定に保たれる、単一の乱数値を生成します。
この関数の動作は次のとおりです:
- 1 回のクエリ内では、すべての行で同じ乱数値を返す
- クエリ実行が異なれば、異なる値を生成する
データセット内のすべての行に対して、一貫した乱数シードや識別子を適用する場合に有用です。
構文
引数
x— 省略可能で、無視されます。クエリ内で同じ関数呼び出しが複数回使用される場合に common subexpression elimination を防ぐことが、この引数の唯一の目的です。Any
戻り値
各行で同じ乱数値が入った UInt32 型のカラムを返します。UInt32
例
基本的な使用例
パラメーター指定での使用方法
randExponential
導入バージョン: v22.10.0
指数分布 に従う Float64 型の乱数を返します。
構文
引数
lambda— 分布のレートパラメータ、またはラムダ値。Float64x— 省略可能で、評価はされますが結果は無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用されるときに、common subexpression elimination が行われるのを防ぐことです。Any
戻り値
指定された指数分布に従う Float64 型の乱数値を返します。Float64
例
使用例
randFisherF
導入バージョン: v22.10.0
F 分布 に従う Float64 型の乱数を返します。
構文
引数
d1—X = (S1 / d1) / (S2 / d2)における自由度 d1。Float64d2—X = (S1 / d1) / (S2 / d2)における自由度 d2。Float64x— 省略可能で、評価時には無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われるのを防ぐことです。Any
戻り値
指定された F 分布に従うランダムな Float64 値を返します。Float64
例
使用例
randLogNormal
導入バージョン: v22.10.0
対数正規分布に従う Float64 型の乱数を返します。
構文
引数
mean— 分布の平均値。Float64stddev— 分布の標準偏差。Float64x— 省略可能で、関数内部では参照されません。この引数の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に共通部分式除去が行われるのを防ぐことだけです。Any
返される値
指定された対数正規分布から生成されるランダムな Float64 値を返します。Float64
例
使用例
randNegativeBinomial
導入バージョン: v22.10.0
負の二項分布に従う Float64 型の乱数を返します。
構文
引数
experiments— 実験の回数。UInt64probability— 各実験における失敗確率。0から1までの値。Float64x— オプションの引数であり、実際には使用されません。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に common subexpression elimination が行われるのを防ぐことです。Any
戻り値
指定された負の二項分布から抽出された Float64 型の乱数を返します。UInt64
例
使用例
randNormal
導入バージョン: v22.10.0
正規分布に従う Float64 型の乱数値を返します。
構文
引数
mean— 分布の平均値。Float64stddev— 分布の標準偏差。Float64x— 省略可能であり、評価時には無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に共通部分式除去が行われるのを防ぐことです。Any
戻り値
指定した正規分布から抽出された乱数(Float64)を返します。Float64
例
使用例
randPoisson
導入バージョン: v22.10.0
ポアソン分布 (Poisson distribution) に従う Float64 型の乱数を返します。
構文
引数
n— 発生回数の平均値。UInt64x— オプションの引数で、値は使用されません。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に共通部分式除去が行われるのを防ぐことです。Any
戻り値
指定されたポアソン分布に従う Float64 型の乱数を返します。UInt64
例
使用例
randStudentT
導入されたバージョン: v22.10.0
Student's t-distribution に従う乱数を Float64 型で返します。
構文
引数
degree_of_freedom— 自由度。Float64x— 省略可能で、指定しても無視されます。同じ関数呼び出しがクエリ内で複数回使用される場合に、common subexpression elimination が行われるのを防ぐことを唯一の目的とした引数です。Any
戻り値
指定されたスチューデントの t 分布から生成される Float64 型の乱数を返します。Float64
例
使用例
randUniform
導入バージョン: v22.10.0
区間 から一様分布に従う Float64 型の乱数を返します。
構文
引数
min— 範囲の左側の境界値(含む)。Float64max— 範囲の右側の境界値(含む)。Float64x— オプションの引数であり、無視されます。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に、共通部分式除去 が行われるのを防ぐことにあります。Any
戻り値
min と max で定義される区間から、一様分布に従うランダムな数値を返します。Float64
例
使用例
randomFixedString
導入バージョン: v20.5.0
指定した文字数の固定長の文字列をランダムに生成します。 返される文字は必ずしも ASCII 文字とは限らず、表示可能な文字でない場合もあります。
構文
引数
length— 文字列のバイト単位での長さ。UInt*
返される値
ランダムなバイトで埋められた文字列を返します。 FixedString
例
使用例
randomPrintableASCII
導入バージョン: v20.1.0
指定した文字数のランダムな ASCII 文字列を生成します。
length < 0 を指定した場合、この関数の動作は未定義です。
構文
引数
length— 文字列の長さ(バイト数)。(U)Int*x— 省略可能で、評価はされません。この引数の唯一の目的は、同じ関数呼び出しがクエリ内で複数回使用される場合に、common subexpression elimination が行われるのを防ぐことにあります。Any
戻り値
ASCII の印字可能文字からなるランダムな文字列を返します。String
例
使用例
randomString
導入バージョン: v20.5.0
指定した文字数のランダムな文字列を生成します。 返される文字は必ずしも ASCII 文字とは限らず、表示可能でない場合もあります。
構文
引数
length— 文字列の長さ(バイト数)。(U)Int*x— オプションであり、無視されます。この引数の唯一の目的は、クエリ内で同じ関数呼び出しが複数回使用される場合に、共通部分式除去が行われるのを防ぐことです。Any
戻り値
ランダムなバイトで埋められた文字列を返します。String
例
使用例
randomStringUTF8
導入バージョン: v20.5.0
指定したコードポイント数を持つランダムな UTF-8 文字列を生成します。 未割り当ての面(第 4 面から第 13 面まで)のコードポイントは返されません。 ClickHouse サーバーと通信しているクライアント側で、生成された UTF-8 文字列を正しく表示できない可能性が依然としてあります。
構文
引数
length— 文字列の長さ(コードポイント数)。(U)Int*
返される値
ランダムな UTF-8 コードポイントからなる文字列を返します。String
例
使用例