http://home.ustc.edu.cn/~xuntai/C/Reference/Generate_Rand_Number.html
http://www.cnblogs.com/afarmer/archive/2011/05/01/2033715.html 关于生成随机数的,写的不错.
rand() [0 RAND_MAX)
看一个实例
float value[10];
for(int i=0; i<10; i++){
value[10]=randomFloat();
printf("%f",value[i]);
}
float randomFloat(void){
srand((unsigned)time(NULL));
float r=(float)rand()/RAND_MAX;
return r;
}
猜下值是多少?
答案是一样的, 这是因为 srand((unsigned)time(NULL)) 在读取的时候时间已经固定了,所以无论怎样值是一样的;只要把 srand((unsigned)time(NULL))
移出for loop 答案就会变得不一样.
double RandomDouble(int min, int max){
double d=min+((float)rand()/(RAND_MAX+1))*(max-min);
//[0, 1]
return d;
}
这是我写的一个function , 返回[min, max ]的double值, 希望对你们有用.
posted on 2013-01-17 16:14
^小黑子^ 阅读(313)
评论(0) 编辑 收藏