首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

rand()%到底是什么意思?解决方法

2012-02-16 
rand()%到底是什么意思?如题,我知道rand()%500是产生0-499的随机数,可是我看windows游戏编程大师技巧好象

rand()%到底是什么意思?
如题,我知道rand()%500是产生0-499的随机数,可是我看windows游戏编程大师技巧好象根本不用srand(),只是使用rand()%n的形式.
另外,一个rand()%n语句在循环语句多次循环中产生的几个值到底是什么关系?完全在范围内的伪随机数?还是递增?还是等差?又或者产生的都是一样的数值?
有知道的能解说下吗?或者给点资料,谢谢

[解决办法]

C/C++ code
c语言中产生随机数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
[解决办法]
你看的那本书里也用了srand,如果不用的话,就是每次产生的随机数都是一样的。他好像用的是srand(Gettickcount()),我忘记在那一章看过了,你自己找一下
[解决办法]
应该只是限制了产生的值的范围吧...其它的实在看不出来了...
[解决办法]
rand()多次循环就有可能产生相同的值,
而rand()%500 经过多次循环生成的数据就是独一无二的.
你可一参考msdn

热点排行