1. 程式人生 > >隨機數生成

隨機數生成

文件 獲得 tdi %d 函數 1970年1月1日 ... 得到 系統

遇到了這麽個題

1949, 2012, 1946, 1874, 2046, 1994, 1839, 1824, 1999, 1024
Choose one number from the ten numbers mentioned above. Only one is correct.

正好復習一下生成(偽)隨機數的rand和srand...

time(0)獲得從某個值得紀念的時刻(1970年1月1日0時)到調用time函數時經過的秒數

srand設置隨機數種子,就是說種子相同時產生的“隨機”序列也相同,不過每次使用不同的種子(使用time(0)),假裝成是真隨機就能湊合用了

rand(),得到0-RAND_MAX(在我的系統上是32767)之間的隨機數,再取膜你想要的範圍就行了

time()需要ctime頭文件

srand,rand需要cstdlib

#include<cstdio>
#include<cstdlib>
#include<ctime>
int arr[10] = {1949, 2012, 1946, 1874, 2046, 1994, 1839, 1824, 1999, 1024};
int main()
{
    srand(time(0));
    int num = rand()%10;
    printf("%d", arr[num]);
    return 0;
}

交了四次成功AC,處於(勉強的)歐洲人水平

所以說到最後我也不知道答案是哪個數,interesting

隨機數生成