我有一个问题,即我要生成使用概率分布1至5(含)之间的一组随机整数的值。
泊松和逆Gamma是两个分布,显示(以平均居多,少较高的数字),我发现我的特点后。
我期待在使用Apache的百科全书数学 ,但我不知道如何生成我使用的发行版中提供想要的数字。
我有一个问题,即我要生成使用概率分布1至5(含)之间的一组随机整数的值。
泊松和逆Gamma是两个分布,显示(以平均居多,少较高的数字),我发现我的特点后。
我期待在使用Apache的百科全书数学 ,但我不知道如何生成我使用的发行版中提供想要的数字。
从您的问题描述,这听起来像你真正想要从一个离散概率分布产生的样本,并可以使用EnumeratedIntegerDistribution
用于此目的。 选择您的每个整数,也许像下面这样将满足您的需求的适当概率:
int[] numsToGenerate = new int[] { 1, 2, 3, 4, 5 };
double[] discreteProbabilities = new double[] { 0.1, 0.25, 0.3, 0.25, 0.1 };
EnumeratedIntegerDistribution distribution =
new EnumeratedIntegerDistribution(numsToGenerate, discreteProbabilities);
int numSamples = 100;
int[] samples = distribution.sample(numSamples);
仅仅调整了discreteProbabilities
值,你需要什么。
我只想产生均匀分布的随机数,然后将它们传递到你想要的分布函数,因此,如果分布函数是X ^ 2
import java.util.ArrayList;
import java.util.Random;
public class Test{
public static void main(String args[]){
Test t=new Test();
}
public Test(){
Random rnd=new Random();
ArrayList<Double> data=new ArrayList<Double>();
for(int i=0;i<1000;i++){
data.add(useFunction(rnd.nextDouble()));
}
}
public double useFunction(double in){
return in*in;
}
}