プログラマメモ2 - programmer no memo2

ポアソン分布の理解のための手習い。その2 2008/03/25

ポアソン分布です。Javaです。
使ってみたライブラリは、



ポアソン分布の平均および分散は、λ に等しい。ポアソン分布 - Wikipedia


λが10とした場合、
100回生成して、生成するごとに平均をとっていきます。
なんとなく平均におさまっていきますね。
多分、そういうことだと思う。

10万回行った場合は、
count:100000 r: 6 a:998012 mean:9.980

10にますます近づく。

count: 1 r: 5 a:5 mean:5.000
count: 2 r: 6 a:11 mean:5.500
count: 3 r:17 a:28 mean:9.333
count: 4 r:11 a:39 mean:9.750
count: 5 r: 7 a:46 mean:9.200
count: 6 r: 8 a:54 mean:9.000
count: 7 r: 9 a:63 mean:9.000
count: 8 r:11 a:74 mean:9.250
count: 9 r: 6 a:80 mean:8.889
count:10 r:13 a:93 mean:9.300
count:11 r:10 a:103 mean:9.364
count:12 r:11 a:114 mean:9.500
count:13 r: 7 a:121 mean:9.308
count:14 r:13 a:134 mean:9.571
count:15 r:10 a:144 mean:9.600
count:16 r:13 a:157 mean:9.813
count:17 r: 5 a:162 mean:9.529
count:18 r:11 a:173 mean:9.611
count:19 r: 8 a:181 mean:9.526
count:20 r: 7 a:188 mean:9.400
count:21 r: 7 a:195 mean:9.286
count:22 r: 9 a:204 mean:9.273
count:23 r:11 a:215 mean:9.348
count:24 r: 6 a:221 mean:9.208
count:25 r: 6 a:227 mean:9.080
count:26 r:11 a:238 mean:9.154
count:27 r:10 a:248 mean:9.185
count:28 r:15 a:263 mean:9.393
count:29 r: 8 a:271 mean:9.345
count:30 r:11 a:282 mean:9.400
count:31 r:14 a:296 mean:9.548
count:32 r:11 a:307 mean:9.594
count:33 r:15 a:322 mean:9.758
count:34 r: 9 a:331 mean:9.735
count:35 r:10 a:341 mean:9.743
count:36 r:11 a:352 mean:9.778
count:37 r: 8 a:360 mean:9.730
count:38 r:10 a:370 mean:9.737
count:39 r: 4 a:374 mean:9.590
count:40 r:13 a:387 mean:9.675
count:41 r: 7 a:394 mean:9.610
count:42 r:11 a:405 mean:9.643
count:43 r:14 a:419 mean:9.744
count:44 r:10 a:429 mean:9.750
count:45 r:11 a:440 mean:9.778
count:46 r:11 a:451 mean:9.804
count:47 r:11 a:462 mean:9.830
count:48 r:12 a:474 mean:9.875
count:49 r: 8 a:482 mean:9.837
count:50 r:11 a:493 mean:9.860
count:51 r:14 a:507 mean:9.941
count:52 r:10 a:517 mean:9.942
count:53 r:10 a:527 mean:9.943
count:54 r: 2 a:529 mean:9.796
count:55 r: 5 a:534 mean:9.709
count:56 r:10 a:544 mean:9.714
count:57 r: 7 a:551 mean:9.667
count:58 r: 7 a:558 mean:9.621
count:59 r: 7 a:565 mean:9.576
count:60 r:11 a:576 mean:9.600
count:61 r:11 a:587 mean:9.623
count:62 r:12 a:599 mean:9.661
count:63 r: 9 a:608 mean:9.651
count:64 r:13 a:621 mean:9.703
count:65 r: 7 a:628 mean:9.662
count:66 r: 5 a:633 mean:9.591
count:67 r:11 a:644 mean:9.612
count:68 r:11 a:655 mean:9.632
count:69 r:17 a:672 mean:9.739
count:70 r: 7 a:679 mean:9.700
count:71 r:12 a:691 mean:9.732
count:72 r: 7 a:698 mean:9.694
count:73 r:17 a:715 mean:9.795
count:74 r: 8 a:723 mean:9.770
count:75 r: 7 a:730 mean:9.733
count:76 r:13 a:743 mean:9.776
count:77 r:11 a:754 mean:9.792
count:78 r: 8 a:762 mean:9.769
count:79 r:14 a:776 mean:9.823
count:80 r:12 a:788 mean:9.850
count:81 r: 6 a:794 mean:9.802
count:82 r: 7 a:801 mean:9.768
count:83 r: 7 a:808 mean:9.735
count:84 r: 7 a:815 mean:9.702
count:85 r:16 a:831 mean:9.776
count:86 r: 5 a:836 mean:9.721
count:87 r: 9 a:845 mean:9.713
count:88 r:10 a:855 mean:9.716
count:89 r:10 a:865 mean:9.719
count:90 r:10 a:875 mean:9.722
count:91 r:11 a:886 mean:9.736
count:92 r: 8 a:894 mean:9.717
count:93 r:15 a:909 mean:9.774
count:94 r: 9 a:918 mean:9.766
count:95 r: 9 a:927 mean:9.758
count:96 r: 6 a:933 mean:9.719
count:97 r: 9 a:942 mean:9.711
count:98 r:19 a:961 mean:9.806
count:99 r:15 a:976 mean:9.859
count:100 r:13 a:989 mean:9.890



import java.util.Random;

import org.uncommons.maths.random.PoissonGenerator;

public class TestT {

public static void main(String[] args) {

double a = 0d;
for(int i=1;i<=100;i++){
int r = r(10);
a += r;
System.out.printf("count:%2d r:%2d a:%.0f mean:%.3f%n", i, r, a, (a/i));
}
}

static int r(double mean){
Random random = new Random();
PoissonGenerator generator = new PoissonGenerator(mean, random);
return generator.nextValue();
}
}


: