1.概念A:srand用來設定隨機數種子的,rand用來產生隨機數的
srand(1);//1為隨機的數的種子
printf("%d", rand());//因為種子為1不變,產生的隨機數是不變的
2.void srand(unsigned int)檢視引數為unsigned int
time_t time(time_t *);//time的建構函式帶參time_t *
typedef long time_t; //time.h定義time_t為long
time(NULL);time(0)//返回的是一個long型時間值,取的是當前系統時間,因此總是變化的
3.srand(time(NULL))就是設定當前的時間值為種子,那麼種子總是變化的
printf("%d", rand());//因為種子總是變化的,所以以該種子產生的隨機數總是變化的
這裡比較time(NULL)和time(0),沒有多大意義啊
4.核心你該搞清楚 srand是怎麼用的:srand定義種子,如果種子是個常量,那麼產生的隨機數不變,所以需要一個
總是變化的種子,而系統時間總是變化的將時間值轉化成unsigned int傳入srand就達到了產生可變種子的目的.因此
int iRet = rand()//產生的隨機數每次都不一樣
小例子:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i = 0;
srand( (unsigned)time(NULL));
//srand((unsigned int)time(0));
//srand(1);
for( i = 0; i < 100; i++ )printf("%d,[1,10]=%d\n", rand(), (rand()%10+1));
}
1.概念A:srand用來設定隨機數種子的,rand用來產生隨機數的
srand(1);//1為隨機的數的種子
printf("%d", rand());//因為種子為1不變,產生的隨機數是不變的
2.void srand(unsigned int)檢視引數為unsigned int
time_t time(time_t *);//time的建構函式帶參time_t *
typedef long time_t; //time.h定義time_t為long
time(NULL);time(0)//返回的是一個long型時間值,取的是當前系統時間,因此總是變化的
3.srand(time(NULL))就是設定當前的時間值為種子,那麼種子總是變化的
printf("%d", rand());//因為種子總是變化的,所以以該種子產生的隨機數總是變化的
這裡比較time(NULL)和time(0),沒有多大意義啊
4.核心你該搞清楚 srand是怎麼用的:srand定義種子,如果種子是個常量,那麼產生的隨機數不變,所以需要一個
總是變化的種子,而系統時間總是變化的將時間值轉化成unsigned int傳入srand就達到了產生可變種子的目的.因此
int iRet = rand()//產生的隨機數每次都不一樣
小例子:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
void main( void )
{
int i = 0;
srand( (unsigned)time(NULL));
//srand((unsigned int)time(0));
//srand(1);
for( i = 0; i < 100; i++ )printf("%d,[1,10]=%d\n", rand(), (rand()%10+1));
}