二項分布的隨機數


一、功能

產生二項式分布的隨機數。

二、方法簡介

二項式分布的概率密度函數為

\[f(x)=C_{n}^{x}p^{x}(1-p)^{n-x} \qquad x \in \left \{ 0,1,...,n \right \} \]

\(Bin(n,p)\)表示。二項式分布的均值為\(np\),方差為\(np(1-p)\)。當\(n=1\)時,\(Bin(n,p)\)就是貝努利分布\(BN(p)\)

\(y_i(i=1,2,...,n)\)是獨立同分布(IID)的參數為\(p\)的貝努利分布隨機變量,則\(x=\sum_{i=1}^{m}y_{i}\)服從二項分布\(Bin(n,p)\)。因此,產生二項分布隨機變量\(x\)的具體算法如下:

  1. 產生IID貝努利分布的隨機數\(y_1,y_2,...,y_n\),即\(y_i \sim BN(p)\)
  2. 計算\(x=\sum_{i=1}^{m}y_{i}\)

三、使用說明

是用C語言實現產生二項分布隨機數的方法如下:

/************************************
	n       ---二項分布分布參數n
	p   	---二項分布分布參數p
	s       ---隨機數種子
************************************/
#include "bn.c"

int bin(int n, double p, long int *s)
{
	int i;
	double x;
	u = uniform(0.0, 1.0, s);
	for(x = 0.0, i = 0; i < n; i++)
		x += bn(p, s);
	return(x);
}

bn.c文件參見貝努力分布的隨機數


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM