函數rand()是真正的隨機數生成器。而srand()會設置供rand()使用的隨機數種子。
假設你在第一次調用rand()之前沒有調用srand(),那么系統會為你自己主動調用srand()。
注意而使用同種子同樣的數調用 rand()會導致同樣的隨機數序列被生成。
因此我們假設要生成以m為隨機數的種子首先要調用srand();
以下就舉例,生成以100,為種子的隨機數10個,將他們控制在0~100之內.
#include <stdio.h> int random(int m){ return rand()%m;//將隨機數控制在0~m-1之間 } int main(){ int n=10,i,m=100,s=50; srand(s);//設置隨機數種子 for(i=0;i<n;i++){ printf("%d ",random(m)); } printf("\n"); return 0; } /*常常使用:srand(time(NULL));來生成以當前時間為種子的隨機數,要包括<time.h>*/