random函数实现

转载 2012年03月28日 17:50:44
rand(产生随机数)  
相关函数 
srand
 
表头文件 
#include<stdlib.h>
 
定义函数 
int rand(void)
 
函数说明 
rand()会返回一随机数值,范围在0至RAND_MAX 间。在调用此函数产生随机数前,必须先利用srand()设好随机数种子,如果未设随机数种子,rand()在调用时会自动设随机数种子为1。关于随机数种子请参考srand()。
 
返回值 
返回0至RAND_MAX之间的随机数值,RAND_MAX定义在stdlib.h,其值为2147483647。
 
范例 
/* 产生介于1 到10 间的随机数值,此范例未设随机数种子,完整的随机数产生请参考
srand()*/
#include<stdlib.h>
main()
{
int i,j;
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf("%d ",j);
}
}
 
执行 
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6
 
  



srand(设置随机数种子)  
相关函数 
rand
 
表头文件 
#include<stdlib.h>
 
定义函数 
void srand (unsigned int seed);
 
函数说明 
srand()用来设置rand()产生随机数时的随机数种子。参数seed必须是个整数,通常可以利用geypid()或time(0)的返回值来当做seed。如果每次seed都设相同值,rand()所产生的随机数值每次就会一样。
 
返回值 

范例 
/* 产生介于1 到10 间的随机数值,此范例与执行结果可与rand()参照*/
#include<time.h>
#include<stdlib.h>
main()
{
int i,j;
srand((int)time(0));
for(i=0;i<10;i++)
{
j=1+(int)(10.0*rand()/(RAND_MAX+1.0));
printf(" %d ",j);
}
}
 
执行 
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7


实现原理:  产生整数rand的原理是: 
y=ax+b(mod   n)其中,n一般是一个很大的素数,几万。 
a也是大素数。而且a,b,n都是常数。所以rand的产生决定于x, 
他被称为seed。 
每一个seed都是上一次产生的y的函数。这样,如果直接取seed=y的话, 
虽然产生的rand之间相关性甚小,但只要知道某个y,就能推知以后的rand。 
为避免这种情况,一般取seed为y和当时计算机的时间的函数,如seed=y+t 

相关文章推荐

java试验,random函数调用等

  • 2012年06月05日 17:14
  • 175KB
  • 下载

Random函数

  • 2013年10月31日 21:08
  • 44KB
  • 下载

Java中的Random()函数

今天在做Java练习的时候注意到了Java里面的一个随机函数——Random,刚开始只是知道这个函数具有随机取值的作用,于是上网搜索了资料一番,做了一下一些关于Random函数的总结: ...

猜数字Math.random 利用alert函数

  • 2009年04月23日 11:41
  • 2KB
  • 下载

C# Random 随机函数案例 卜卦游戏

  • 2012年05月15日 17:42
  • 269KB
  • 下载

Python Random函数常用方法及示例

这篇文章主要介绍了Python random函数(获取随机数)常用方法和使用例子,需要的朋友可以参考下 random.random random.random()用于生成一个0...
  • Cavien
  • Cavien
  • 2016年11月16日 19:09
  • 547

数据的随机生成函数random number

  • 2011年05月26日 08:38
  • 344B
  • 下载

热门|别再刷屏左右脑年龄了,是random函数生成的!

“全球人工智能”拥有十多万AI产业用户,10000多名AI技术专家。主要来自:北大,清华,中科院,麻省理工,卡内基梅隆,斯坦福,哈佛,牛津,剑桥...以及谷歌,腾讯,百度,脸谱,微软,阿里,海康威视,...

Jmeter 中随机函数__Random 的使用

前段时间,在做接口测试时,经常遇到需要接口aca输入不同的内容或者手机号码等,不允许输入重复的用户名或者手机号码,那此时可以通过Random 随机函数来解决此问题。 以前的文章有介绍过使用time函...

Java——随机数(Random()函数)

Java中存在着两种Random函数:一、java.lang.Math.Random  Math.random()方法生成大于等于0.0且小于1.0的double型随机数(0.0...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:random函数实现
举报原因:
原因补充:

(最多只允许输入30个字)