随机数 均匀 mysql_均匀分布的随机数

一、功能

产生(a, b)区间上均匀分布的随机数。

二、方法简介

均匀分布的概率密度函数为

\[f(x)=\left\{\begin{matrix}

\frac{1}{b-a} & ,a\leq x\leq b\\

0 & ,others

\end{matrix}\right.

\]

通常用\(u(a, b)\)表示。均匀分布的均值为\(\frac{a+b}{2}\),方差为\(\frac{(a-b)^{2}}{12}\)。

产生均匀分布随机数的方法如下:

首先,由给定的初值\(x_{0}\),用混合同余法:

\[\left\{\begin{matrix}

x_{i} &=(ax_{i-1}+c)(mod \ M)\\

y_{i} &=x_{i}/M

\end{matrix}\right.

\]

产生(0, 1)区间上的随机数\(y_{i}\)。其中:a=2045,c=1,\(M=2^{20}\);然后,通过变换\(z_{i}=a+(b-a)y_{i}\)产生(a,b)区间上的随机数\(z_{i}\)

三、使用说明

生成(a,b)区间上均匀分布随机数的C函数:

/************************************

a---给定区间下限

b---给定区间上限

seed---随机数种子

************************************/

double uniform(double a, double b, long int *seed)

{

double t;

*seed = 2045 * (*seed) + 1;

*seed = *seed - (*seed / 1048576);

t = (*seed) / 1048576.0;

t = a + (b - a) * t;

return(t);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值