1

我是 Java 新手,我想创建一个 Weibull 分布的随机值。

我尝试使用 umontreal.iro.lecuyer.randvar 包中的 WeibullGen 类,但有点卡住了。
我尝试了类似以下的方法,但它显然不起作用。

for(int i=0;i<5;i++){
    int result = WeibullGen.nextDouble(RandomStream s ,1.0,1.0,1.0);
    if(result>0) System.out.println(result);
}

我的问题是我不知道如何创建流。我很确定这不会那么难,但我真的很难找到自己的方式。

4

2 回答 2

4

为每个生成的随机数创建一个新流并不是一个好主意。最好只使用 1 个这样的流:

RandomStream stream = new MRG32k3a();
for(int i=0;i<5;i++) {
   int result = WeibullGen.nextDouble(stream, alp, lam,1.0);
   System.out.println(result);
}
于 2013-10-07T18:55:08.460 回答
1

要创建Stream内联,您可以这样做:

for(int i=0;i<5;i++){
    int result = WeibullGen.nextDouble(new RandomStream(),1.0,1.0,1.0);
    if(result>0) System.out.println(result);
}

在 Java 中,您必须使用new关键字实例化对象。

于 2013-10-01T20:00:09.497 回答