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