程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> 關於C >> rand()產生隨機數

rand()產生隨機數

編輯:關於C
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
int main(void)
{
    int m, n;
    time_t t;
    srand((unsigned) time(&t));//srand函數是隨機數發生器的初始化函數,不用的話每次產生同樣的隨機數
    m = rand();//產生0-2^16的整數
    n = rand()%10;//產生0-10的隨機數
    printf("m = %d\nn = %d\n", m, n);
    return 0;
}
/*
函數名: time   頭文件:time.h   函數原型:time_t time(time_t * timer)  
 功能: 獲取當前的系統時間,返回的結果是一個time_t類型,其實就是一個大整數,
其值表示從CUT(Coordinated Universal Time)時間1970年1月1日00:00:00(稱為UNIX
系統的Epoch時間)到當前時刻的秒數。然後調用localtime將time_t所表示的CUT時間轉換
為本地時間(我們是+8區,比CUT多8個小時)並轉成struct tm類型,該類型的各數據成員
分別表示年月日時分秒。
*/
/* www.2cto.com
srand函數是隨機數發生器的初始化函數。
   原型:void srand(unsigned seed);   
 用法:它需要提供一個種子,這個種子會對應一個隨機數,如果使用相同的種子後面的
 rand()函數會出現一樣的隨機數。如: srand(1); 直接使用1來初始化種子。不過為了
 防止隨機數每次重復常常使用系統時間來初始化,即使用 time函數來獲得系統時間,
 它的返回值為從 00:00:00 GMT, January 1, 1970 到現在所持續的秒數,然後
 將time_t型數據轉化為(unsigned)型再傳給srand函數,即: srand((unsigned) time(&t));
 還有一個經常用法,不需要定義time_t型t變量,即: srand((unsigned) time(NULL));
 直接傳入一個空指針,因為你的程序中往往並不需要經過參數獲得的t數據。
 srand((int)getpid()); 使用程序的ID(getpid())來作為初始化種子,在同一個程序中這
 個種子是固定的
*/

摘自 小魚的專欄
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved