当前位置: 代码迷 >> C语言 >> 怎么在c中使用随机数??
  详细解决方案

怎么在c中使用随机数??

热度:271   发布时间:2006-11-09 16:13:54.0
请问什么是伪随机数,c中有没有真正的随机数?
----------------解决方案--------------------------------------------------------
顶起来,我遇到的问题和这个差不多,就是每次运行得到的数都是一样的,为什么?
有没有什么办法解决?
----------------解决方案--------------------------------------------------------
以前有个贴有关这方面介绍,不过现在不知沉到那里。
----------------解决方案--------------------------------------------------------
好像可以用randomize()这个函数来解决
调用方式:void randomize(void)
说明:函数randomize()的原型在stdlib.h中
函数randomize()宏通过初始化随技数发生器使之产生一个随机数。它使用time()函数,所以在用道randomize()的任何程序都要包括time.h
(以上载自《TURBO C实用大全》P496)
再写这个函数,再用rand()函数,这样生成的随机数就会不一样了。
----------------解决方案--------------------------------------------------------
#include<time.h>
#include<stdio.h>
#include<stdlib.h>
void main()
{
int a,b;
srand((unsigned)time(NULL));
a=rand()%10+1;
b=rand()%10+1;

printf("%d+%d=%d",a,b,a+b);

}


我们老师教的就是用时间做种子
----------------解决方案--------------------------------------------------------
还请各位高手解释一下这句话的含义

srand((unsigned)time(NULL));

srand是什么函数?
----------------解决方案--------------------------------------------------------

函数名: srand
功 能: 初始化随机数发生器
用 法: void srand(unsigned seed);
程序例:

#include <stdlib.h>
#include <stdio.h>
#include <time.h>

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;
}

呼呼,教程上写的,看看


----------------解决方案--------------------------------------------------------
谢谢楼上的,终于又解决了一个问题。请问楼上的用的是什么教程?我查过很多书都没有找到这个函数的解释。
----------------解决方案--------------------------------------------------------
Turbo C For Windows 集成实验与学习环境
这个软件里头自带的,有兴趣的话下载下,
新浪下载 http://down1.tech.sina.com.cn/download/downContent/2005-09-27/15307.shtml
论坛里老贴有的.
----------------解决方案--------------------------------------------------------
麻烦问一下, srand((unsigned) time(&amp;t)); 这句该怎么理解? 我还是没看懂啊?谢谢阿!
----------------解决方案--------------------------------------------------------
  相关解决方案