赞
踩
Poisson泊松分布,是一种统计与概率学里常见到的离散概率分布。多出现在当X表示在一定的时间或空间内出现的事件个数这种场合。在一定时间内某交通路口所发生的事故个数,是一个典型的例子。
泊松分布的概率函数为:
泊松分布的参数λ是单位时间(或单位面积)内随机事件的平均发生次数。 泊松分布适合于描述单位时间内随机事件发生的次数。
泊松分布的期望和方差均为λ。
- public class Possion {
- static long seed;
- static double a = 32719, m;
-
- public static double p_rand(double lamda) {
- // 泊松分布
- double n = 0, p = 1, c = Math.exp(-lamda), u;
- do {
- u = randomU();
- // u = Math.random() ;
- p *= u;
- System.out.println("u=" + u + " p=" + p + " n=" + n + " c=" + c);
- if (p >= c)
- n++;
- } while (p >= c);
- return u;
- }
-
- // 线性同余法生成U[0,1) 随机数
- public static double randomU() {
- seed = (long) ((32719 * seed) % (m - 1));
- // System.out.println("seed:"+seed);
- return seed / (m - 1);
- }
-
- public static void main(String[] args) {// TODO Auto-generated method stub// 随机数种子生成与初始化
- seed = System.currentTimeMillis();
- m = Math.pow(2, 31);
- double uu[] = new double[1000];
- int N = 1000;
- // 生成 10 个泊松分布分布随机数
- for (int i = 0; i < N; i++) {
- System.out.println("第" + i + "个");
- uu[i] = p_rand(0.2);
- }
- //计算均值与方差
- double sum = 0, sum2 = 0, ave = 0, fangca = 0;
- for (int i = 0; i < N; i++) {
- sum = sum + uu[i];
- sum2 = sum2 + uu[i] * uu[i];
- System.out.println("u:" + i + "." + uu[i]);
- }
- ave = (double) sum / N;
- System.out.println("均值:" + ave);
- for (int i = 0; i < N; i++) {
- // sum = sum + uu[i];
- sum2 = sum2 + (uu[i] - ave) * (uu[i] - ave);
- }
- fangca = sum2 / N;
- System.out.println("方差:" + fangca);
- }
- }
- <dependency>
- <groupId>org.apache.commons</groupId>
- <artifactId>commons-math3</artifactId>
- <version>3.6.1</version>
- </dependency>
- public static void main(String[] args){
-
- RandomEngine engine = new DRand();
-
- Poisson poisson = new Poisson(lambda, engine);
-
- int poissonObs = poisson.nextInt();
-
- Normal normal = new Normal(mean, variance, engine);
-
- double normalObs = normal.nextDouble();
-
- }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。