读书人

C语言生成随机数解决方法

发布时间: 2012-04-24 14:15:38 作者: rapoo

C语言生成随机数
生成随机数的时候一般都会调用时间函数,可是CPU处理速度太快了,导致短时间内生成的是一个随机数,我现在的处理是在循环中加个sleep(1),这样就生成了真正意义上的伪随机数,不知道大家是怎么处理这个问题的呢?
第二个问题,我想随机生成1到10以内的不重复的随机排列,C语言中是否有课实现这种功能的函数呢?

[解决办法]
用srand(time(NULL)+clock())这个就可以产生高频率的种子了
[解决办法]

C/C++ code
#include<stdio.h>#include<time.h>#include<stdlib.h>void main(){    srand( time(NULL) ); //用当前的时间做种子    int i;    for(i=0; i < 10; ++i)    {        printf("%d ", rand()%100); //每次调用rand()函数,都会返回一个随机数    }}
[解决办法]
另外多个随机数只需要多次rang()即可,即使种子还没变,rang()得到的数值也会不一样,因为rand()每调用一次,函数内部运算的参数都会不一样

读书人网 >C语言

热点推荐