真隨機數生成原理

原理:

  • rand()函數利用操作系統的種子來生成僞隨機數。
  • 如果系統的種子沒有變化,每次調用rand函數 生成的僞隨機數序列都是一樣的。
  • 所以只要系統種子是真隨機,那生成的隨機數是真正意義上的“隨機”
  • 作時間作爲種子是真隨機的種子值。
  • srand(unsigned seed)通過參數seed改變系統提供的種子值,在使用rand()函數之前,先利用srand函數改變系統種子值 。所以每次生成的隨機數因爲種子值改變------->生成的隨機序列改變------->在隨機序列中隨機取一個值,這個結果就是真隨機。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
    srand(time(0)); //如果去掉這一句就是僞隨機
    int num=rand();
    printf("random number: %d\n", num);
    return 0;
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章