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
^小黑子^ 閱讀(321)
評論(0) 編輯 收藏