我正在搜索java(可以是java-8)的方法或库,它能够根据构成箱线图的数字生成随机样本(最好使用固定种子进行确定性测试)
想象一下盒子图:
----------
|-----| | |-----------|
----------
min A avg B max
现在您可以使用数字min
,A
,avg
,B
和max
。方法或库应该生成一个与这些规则绑定的随机数。
答案 0 :(得分:3)
假设min
,a
,median
,b
,max
值分布四分位数(http://en.wikipedia.org/wiki/Quartile):
static public double next(Random rnd, double median, double a, double b, double min, double max) {
double d = -3;
while (d > 2.698 || d < -2.698) {
d = rnd.nextGaussian();
}
if (Math.abs(d) < 0.6745) {
if (d < 0) {
return median - (median - a) / 0.6745 * (-d); // 2nd quartile
} else {
return median + (b - median) / 0.6745 * d; // 3rd quartile
}
} else {
if (d < 0) {
return a - (a - min) / (2.698 - 0.6745) * ((-d) - 0.6745); // 1st quartile
} else {
return b + (max - b) / (2.698 - 0.6745) * (d - 0.6745); // 4th quartile
}
}
}
在这里,我发现了哪个四分位d = rnd.nextGaussian()
进入,并将值投影到给定的boxplot的相应部分。