rand、srand及randomize的用法
来源:互联网 发布:github 源码下载 编辑:程序博客网 时间:2024/05/17 00:07
9 4 8 8 10 2 4 8 3 6
9 4 8 8 10 2 4 8 3 6 //再次执行仍然产生相同的随机数
5 8 8 8 10 2 10 8 9 9
2 9 7 4 10 3 2 10 8 7
又或:
用"int x = rand() % 100;"来生成 0 到 100 之间的随机数这种方法是不或取的,比较好的做法是: j=(int)(n*rand()/(RAND_MAX+1.0))产生一个0到n之间的随机数
int main(void){ int i; time_t t;
srand((unsigned) time(&t)); printf("Ten random numbers from 0 to 99/n/n"); for(i=0; i<10; i++) printf("%d/n", rand() % 100); return 0;}除以上所说的之外,补充一点就是srand这个函数一定要放在循环外面或者是循环调用的外面,否则的话得到的是相同的数字。
MSDN中的例子。// crt_rand.c// This program seeds the random-number generator// with the time, then displays 10 random integers.//
#include <stdlib.h>#include <stdio.h>#include <time.h>
int main( void ){ int i; // Seed the random-number generator with current time so that // the numbers will be different every time we run. // srand( (unsigned)time( NULL ) );
// Display 10 numbers. for( i = 0; i < 10;i++ ) printf( " %6d/n", rand() );
printf("/n");
// Usually, you will want to generate a number in a specific range, // such as 0 to 100, like this: { int RANGE_MIN = 0; int RANGE_MAX = 100; for (i = 0; i < 10; i++ ) { int rand100 = (((double) rand() / (double) RAND_MAX) * RANGE_MAX + RANGE_MIN); printf( " %6d/n", rand100); } }
总结:
我们知道rand()函数可以用来产生随机数,但是这不是真真意义上的随机数,是一个伪随机数,是根据一个数,我们可以称它为种了,为基准以某个递推公式推算出来的一系数,当这系列数很大的时候,就符合正态公布,从而相当于产生了随机数,但这不是真正的随机数,当计算机正常开机后,这个种子的值是定了的,除非你破坏了系统,为了改变这个种子的值,C提供了 srand()函数,它的原形是void srand( int a) 功能是初始化随机产生器既rand()函数的初始值,即使把种子的值改成a; 从这你可以看到通过sand()函数,我们是可以产生可以预见的随机序列,那我们如何才能产生不可预见的随机序列呢?我们可能常常需要这样的随机序列,是吧。利用srand((unsign)(time(NULL))是一种方法,因为每一次运行程序的时间是不同的,对了,你知道time() 函数的功能是返回从1970/01/01到现在的秒数的吧,可能这个起始时间不正确,你查一下对不对吧,C还提供了另一个更方便的函数,randomize()原形是void randomize(),功能是用来始初rand() 的种子的初始值,而且该值是不确定的,它相当于srand((unsign)(time(NULL)) 不过应注意的是randomize()的功能要通过time来实现所以在调用它时头文件要包含time.h罢了
- rand、srand及randomize的用法
- rand、srand及randomize的用法
- rand(),srand(),Randomize(),Random()的区别和用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- rand()与srand()的用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- srand和rand的用法
- rand和srand的用法
- rand和srand的用法
- rand和srand的用法
- srand和rand的用法
- 按键精灵(quick macro) v5.60 英文版 免费下载--IT man
- SOA咨询方法论
- 按键发声器 v1.12 免费下载--IT man
- 按键编辑hbutton v2.2 免费下载--IT man
- 按键重新设定 免费下载--IT man
- rand、srand及randomize的用法
- 按键虫子 v1.0.5 免费下载--IT man
- 暗黑破坏神 v1.0.0.0 简装版 免费下载--IT man
- 按键屏蔽精灵 1.0.1 免费下载--IT man
- 按键游侠脚本引擎 v1.0 免费下载--IT man
- 按键游侠 v4.1.6 免费下载--IT man
- 一个雷死人的英文句子
- 按键娃娃 v1.05 免费下载--IT man
- 按键flash v3.3 免费下载--IT man