JSON random number specification
本記事では,JSON ファイルで各種パラメータを指定するときに用いる乱数の書式を定義する.
この書式を用いた乱数生成は plham.util.JSONRandom#nextRandom(...)
メソッドを呼び出すことで利用できる.
val random = new JSONRandom(new Random());
val json = JSON.parse(inputFile);
val param = random.nextRandom(json("param")); // Random number or Constant
ここで,nextRandom(...)
は json("param")
が返す JSON オブジェクト(定数,配列,辞書など)を引数にとる.
後続の節で述べる定義書式をサポートしている.
註)JSON で記述するあるパラメータの値がこの定義書式をサポートしているかは,X10 で書かれたプログラムが JSONRandom#nextRandom(...)
メソッドを呼び出しているかで決まる.
説明書を記述する際には (JSONRandom compliant)
と書くとよいだろう.
Constant
{ "param": 100 }
{ "param": [100, 100] }
{ "param": {"const": [100]} }
Uniform [min, max]
下限 min
,上限 max
の一様分布乱数を与える.
{ "param": [100, 200] }
{ "param": {"uniform": [100, 200]} }
Normal [mu, sigma]
平均 mu
,分散 sigma^2
の正規分布乱数を与える.
{ "param": {"normal": [0, 1.5]} }
Exponential [lambda]
期待値 lambda
の指数分布乱数を与える.
{ "param": {"expon": [10.0]} }