📄 概率分布简介.txt
字号:
//在【a,b】区间均匀分布的随机数
double myu(double a, double b)
{
double y;
if(a>b)
{
printf("\nThe first parameter should be less than the second!");
exit(1);
}
y = (double)rand()/(RAND_MAX);
return (a+(b-a)*y);
}
// 指数分布
// 指数分布的密度函数是 f(x) = Lambda*exp(-Lambda*X)
// 概率分布函数:F(X) = 1 - exp(-Lambda*X)
// U=F(X) = 1 - exp(-Lambda*X)
// 所以 X=(-1/Lambda)*Log(U)
double myexp(double beta) // 此处的beta=1/Lambda
{
double u;
do
{
// 【0,1】区间均匀分布
u = myu(0,1);
} while(u<=0||u>=1);
return (-1*beta*log(u));
}
// 正泰分布 myn(均值,方差)
double myn(double mu, double sigma2) // Normal Distribution
{
double mu1, mu2, z;
do
{
mu1 = myu(0,1);
mu2 = myu(0,1);
} while (mu1<=0||mu1>=1);
z = sqrt(-2*log(mu1))*sin(2*3.14159*mu2);
// Z是服从myn(0,1)标准正态分布的随机数
return (mu+sqrt(sigma2)*z);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -