ポアソン分布の理解のための手習い。
2008/03/25
2008/03/25
java
ポアソン分布
基礎数学
待ち行列の説明をみてて、「ポアソン分布」というのがでてきたので、ちょっと勉強。
使ったライブラリは、
ポアソン分布で値を生成して生成した回数で割ってみる。
結果は
mean:1000
ポアソン分布でだした値の平均:998.928
もちろん繰りかえせば値もちょっとかわる。
平均をとることに意味があるかは、わからないけど...
このライブラリ使うとポアソン分布の値が手軽にとれるよってことで。
package t;
import java.util.Random;
import org.uncommons.maths.random.PoissonGenerator;
public class TestRandomOccur {
public static void main(String[] args) {
int mean = 1000;
System.out.println("mean:" + mean);
//print_random(mean);
print_poisson(mean);
}
static void print_poisson(int mean) {
double m = 0d;
int cnt = mean;
for (int i = 0; i < cnt; i++) {
double g = r(mean);
// System.out.println(g);
m += g;
}
System.out.println("ポアソン分布でだした値の平均:" + (m / cnt));
}
// static void print_random(int mean) {
// double m = 0d;
// int cnt = mean;
// for (int i = 0; i < cnt; i++) {
// double g = r2(mean);
// System.out.println(g);
// m += g;
// }
// System.out.println("ランダムでだした値の平均:" + (m / cnt));
// }
static int r(int mean) {
Random random = new Random();
PoissonGenerator poissonGenerator = new PoissonGenerator(mean, random);
return poissonGenerator.nextValue();
}
static int r2(int mean) {
Random random = new Random();
return random.nextInt(mean);
}
}
import java.util.Random;
import org.uncommons.maths.random.PoissonGenerator;
public class TestRandomOccur {
public static void main(String[] args) {
int mean = 1000;
System.out.println("mean:" + mean);
//print_random(mean);
print_poisson(mean);
}
static void print_poisson(int mean) {
double m = 0d;
int cnt = mean;
for (int i = 0; i < cnt; i++) {
double g = r(mean);
// System.out.println(g);
m += g;
}
System.out.println("ポアソン分布でだした値の平均:" + (m / cnt));
}
// static void print_random(int mean) {
// double m = 0d;
// int cnt = mean;
// for (int i = 0; i < cnt; i++) {
// double g = r2(mean);
// System.out.println(g);
// m += g;
// }
// System.out.println("ランダムでだした値の平均:" + (m / cnt));
// }
static int r(int mean) {
Random random = new Random();
PoissonGenerator poissonGenerator = new PoissonGenerator(mean, random);
return poissonGenerator.nextValue();
}
static int r2(int mean) {
Random random = new Random();
return random.nextInt(mean);
}
}
: