• 正态分布的随机数


    一、功能

    产生正态分布(N(mu, sigma^2))

    二、方法简介

    正态分布的概率密度函数为

    [f(x)=frac{1}{sqrt{2pi}sigma}e^{-(x-mu)^{2}/2sigma^{2}} ]

    通常用(N(mu, sigma^2))表示。式中(mu)是均值,(sigma^2)是方差。正态分布也称为高斯分布。

    (r_{1}, r_{2}, ..., r_{n})为(0,1)上(n)个相互独立的均匀分布的随机数,由于(E(r_{i})=frac{1}{2})(D(r_{i})=frac{1}{12}),根据中心极限定理可知,当(n)充分大时

    [x=sqrt{frac{12}{n}}left ( sum_{n}^{i=1}r_{i}-frac{n}{2} ight ) ]

    的分布近似正态分布(N(0, 1))。通常取(n=12),此时有

    [x=sum_{12}^{i=1}r_{i}-6 ]

    最后,再通过变换(y=mu+sigma x),便可得到均值(mu)、方差为(sigma^2)的正态分布随机数(y)

    三、使用说明

    使用C语言编程生成正态分布函数(N(0, 1))

    /************************************
    	a		---给定区间下限
    	b		---给定区间上限
    	seed	---随机数种子
    ************************************/
    #include "uniform.c"
    
    double gauss(double mean, double sigma, long int *s)
    {
    	int i;
    	double x;
    	double y;
    
    	for(x = 0, i = 0; i < 12; i++){
    		x += uniform(0.0, 1.0, s);
    	}
    	x = x - 6.0;
    	y = mean + x * sigma;
    	return(y);
    }
    

    uniform.c文件参见均匀分布的随机数

  • 相关阅读:
    Java中运算符“|”和“||”以及“&”和“&&”区别
    idataway_前端
    web前端名人的博客微博Githu
    css动效库animate.css和swiper.js
    elementUI和iview兼容么
    calc
    多年未写过java了
    ajax
    commonjs
    优秀的移动端设计
  • 原文地址:https://www.cnblogs.com/liam-ji/p/11624215.html
Copyright © 2020-2023  润新知