zoukankan      html  css  js  c++  java
  • 均匀分布的随机数

    一、功能

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

    二、方法简介

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

    [f(x)=left{egin{matrix} frac{1}{b-a} & ,aleq xleq b\ 0 & ,others end{matrix} ight. ]

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

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

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

    [left{egin{matrix} x_{i} &=(ax_{i-1}+c)(mod M)\ y_{i} &=x_{i}/M end{matrix} ight. ]

    产生(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);
    }
    
  • 相关阅读:
    LAMP课程(3)
    LAMP课程
    vim文本编辑
    mysql常用语句
    mysql双机互相备份
    Java NIO
    适配器模式
    对象的序列化与反序列化
    字符流
    Java Socket
  • 原文地址:https://www.cnblogs.com/liam-ji/p/11623024.html
Copyright © 2011-2022 走看看