真随机数生成原理

原理:

  • 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;
}

猜你喜欢

转载自blog.csdn.net/weixin_41048746/article/details/86495602