C#生成一个符合正态分布(高斯分布)的随机数

//随机产生一个符合正态分布的数 u均数,d为方差
public static double Rand(double u, double d)
{
double u1, u2, z, x;
//Random ram = new Random();
if (d <= 0)
{

return u;
}
u1 = (new Random(GetRandomSeed())).NextDouble();
u2 = (new Random(GetRandomSeed())).NextDouble();

z = Math.Sqrt(-2 * Math.Log(u1)) * Math.Sin(2 * Math.PI * u2);

x = u + d * z;
return x;

}

C#生成一个符合正态分布(高斯分布)的随机数

时间: 2024-10-24 14:23:41

C#生成一个符合正态分布(高斯分布)的随机数的相关文章

生成一个没有重复数字的随机数(JAVA)

public class TestRandom { public static void main(String[] args) { //随机数 int[] random = new int[4]; for(int i = 0; i < random.length; i++){ random[i] = (int)(Math.random() * 10); for(int j =0; j < i; j++){ if(random[j] == random[i]){ i--; break; } }

使用Excel生成符合正态分布的随机数

正态分布的应用非常广泛,自然科学和社会科学研究中很多对象都符合正态分布.本文介绍如何使用Excel的随机数生成器获得满足正态分布的随机数据. 1. 使用Excel的随机数生成器 2. 如图获得一个均值为0,标准差为0.5的正态分布的400个随机数 3. 使用描述性统计观察数据 4. 生成一个步长为0.05,范围为[-4~4]的序列 5. 使用直方图来观察数据是否符合正态分布,这步需要较长时间. 6. 如图曲线较好的满足了正态分布的特征:"关于均值左右对称,中间高,两边低".

ORACLE 生成一个随机数

ORACLE 如何产生一个随机数:DBMS_RANDOM--1.小数( 0 ~ 1) select dbms_random.value from dual ; --2.指定范围内的小数 ( 0 ~ 100 ) select dbms_random.value(0,100) from dual ; --3.指定范围内的整数 ( 0 ~ 100 ) select trunc(dbms_random.value(0,100)) from dual ; --4.长度为20的随机数字串 select su

Python中怎样生成一个服从标准正态分布的矩阵??

例如要产生一个标准正态分布的矩阵,矩阵维数为2*3,则代码如下: 1 from numpy import *; 2 def rand_Matrix(): 3 randArr=random.randn(2,3); 4 randMat=mat(randArr); 5 return randMat; 一种结果如下: 1 matrix([[ 0.3150869 , -0.02041996, -0.15361071], 2 [-0.75507988, 0.80393683, -0.31790917]])

如何模拟高斯分布的随机数发生器?

在一些算法中,经常会用到随机数,最常用的随机数有两种,一是服从均匀分布的随机数,二是服从高斯分布(正态分布)的随机数.在标准C中并没有产生高斯分布的随机数发生器,只有服从均匀分布的随机数发生器rand(),那么如何通过rand()来模拟出高斯分布特征的伪随机数呢?这就是本文的话题. 实验原理:高斯分布的随机数在概率上服从高斯分布,如果通过rand()产生某个区间的随机数,通过高斯分布的概率计算公式得到该随机数对应的概率值,然后与一个随机概率进行比较,如果该概率值大于随机概率,就认为该随机数是服从

转:在0~N(不包括N)范围内随机生成一个长度为M(M &lt;= N)且内容不重复的数组

1. 最朴素暴力的做法. void cal1() { int i = 0, j = 0, num = 0; int result[M]; result[0] = rand() % N; //第一个肯定不重复, 直接加进去 for (i = 1; i < M; i++) //获得剩下的(M-1)个随机数 { num = rand() % N; //生成0 ~ N之间的随机数字 for (j = 0; j < i; j++) { if (num == result[j]) //如果和result数

随机生成一个数独

最近学习用Java编写GUI程序,感觉从做一个小东西入手最好,选择了编写一些小游戏开始,第一个为数独游戏. http://en.wikipedia.org/wiki/Sudoku 编写数独游戏第一步考虑的就是该如何生成一个原始的数独题目,要想生成数独题目最简单的办法就是先随机生成一个完整的数独,然后从中摘除一些数字,这样就可以生成一道数独题.所以需要考虑如何随机的生成一个完整的数独,这里考虑使用回溯法生成: 在数独的某个位置插入一个1~9的值 如果这个值能正常插入,则递归在下一个位置插入 如果这

使用C++生成1-33中的6个随机数,无重复

生成1-33中的6个随机数,无重复 ------------------------------------------------------------------------ 方法1.每生成一个随机数,便于前面的所有随机数进行比较,如果有重复,则舍去不要,重新选取. 但该方法十分费时,并且在数据量巨大的并且有一定限制的时候,会引发巨大问题. 例如要生成10000个随机数,范围是0-9999,且不能重复,那么最后几个随机数有可能需要相当长的时间才能筛选出来. 方法2. 下面我们从另外一个角度

C\C++ 生成各位数不相等的随机数

最近想写一个1A2B的小游戏来练习一下,结果在第一步生成随机数的时候就遇到了一点点问题. 游戏初始化时需要先生成一个四位随机数,且各位各不相等.于是最开始的思路是生成一个整数数组,只需要判断生成的随机数字是否跟之前的数字有重复,有则重新生成即可,但是之后发现两个问题.首先是,函数每次调用后生成的随机数是一样的.第二,生成的随机数如果0在第一位,则调用itoa函数时会被舍弃掉. 后来研究中发现,出现的原因是srand放在了函数里,每次调用函数都就重置随机数种子至初始值,于是就会出现生成的随机数都一