随机数的计算公式是什么?

 我来答
56472382
推荐于2018-08-21 · TA获得超过194个赞
知道答主
回答量:124
采纳率:0%
帮助的人:45万
展开全部
为追求真正的随机序列,人们曾采用很多种原始的物理方法用于生成一定范围内满足精度(位数)的均匀分布序列,其缺点在于:速度慢、效率低、需占用大量存储空间且不可重现等。为满足计算机模拟研究的需求,人们转而研究用算法生成模拟各种概率分布的伪随机序列。伪随机数是指用数学递推公式所产生的随机数。从实用的角度看,获取这种数的最简单和最自然的方法是利用计算机语言的函数库提供的随机数发生器。典型情况下,它会输出一个均匀分布在0和1区间内的伪随机变量的值。其中应用的最为广泛、研究最彻底的一个算法即线性同余法。
  线性同余法LCG(Linear Congruence Generator)
  选取足够大的正整数M和任意自然数n0,a,b,由递推公式:
  ni+1=(af(ni)+b)mod M i=0,1,…,M-1
  生成的数值序列称为是同余序列。当函数f(n)为线性函数时,即得到线性同余序列:
  ni+1=(a*ni+b)mod M i=0,1,…,M-1
  以下是线性同余法生成伪随机数的伪代码
  Random(n,m,seed,a,b)
  {
  r0 = seed;
  for (i = 1;i<=n;i++)
  ri = (a*ri-1 + b) mod m
  }
  其中种子参数seed可以任意选择,常常将它设为计算机当前的日期或者时间;m是一个较大数,可以把它取为2w,w是计算机的字长;a可以是0.01w和0.99w之间的任何整数。
  应用递推公式产生均匀分布随机数时,式中参数n0,a,b,M的选取十分重要。
  例如,选取M=10,a=b =n0=7,生成的随机序列为{6,9,0,7,6,9,……},周期为4。
  取M=16,a=5,b =3,n0=7,生成的随机序列为{6,1,8,11,10,5,12,15,14,9,0,3,2,13,4,7,6,1……},周期为16。
  取M=8,a=5,b =1,n0=1,生成的随机序列为{6,7,4,5,2,3,0,1,6,7……},周期为8。
jmdywch
2012-11-21
知道答主
回答量:35
采纳率:0%
帮助的人:11万
展开全部
Random ra = new Random();
ra .Next(1,9);就会在1到9中取一个数字
更多追问追答
追问
没看懂
追答
你是什么语言?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式