• 关于Random中的随机数种子Seed


      Random初始化的时候,可以以一个INT32作为参数,称为seed,MSDN上的解释是:“伪随机数是以相同的概率从一组有限的数字中选取的......随机数的生成是从种子值开始......”

      所有标准库提供的Random函数其实都是假Random,提供的随机数也是伪随机数,真正的Random函数式不需要Seed的。所谓假Random,是指所返回的随机数字其实是一个稳定算法所得出的稳定结果序列,而不是真正意义上的随机序列。 Seed就是这个算法开始计算的第一个值。所以就会出现只要seed是一样的,那么后续所有“随机”结果和顺序也都是完全一致的。 通常情况下,你可以用 DateTime.Now.Millisecend() 也就是当前始终的毫秒来做Seed .因为毫秒对你来说是一个1000以内的随即数字。 这样可以大大改善保准库的Random结果的随机性。 不过这仍然算不上是完全随机,因为重复的概率还是千分之一。

      需要注意的是,如果一直调用标准库Random,那么在调用了N次以后,输出结果就会循环最开始的序列了。也就是说,标准库Random所能生成的不同结果的个数也是有限的。32位系统一般也就是几万次以后就会出现重复。可以到网上找一个真正的随机函数,以替换标准库Random。

  • 相关阅读:
    总体和样本
    素数和合数
    Scrum 体验活动笔记
    敏捷 扑克上的时间估算(转)
    Python爬取拉勾网职位
    无头浏览器Chromedriver、Phantomjs安装及教程、Chrome插件xpath下载及安装
    Python爬取智联招聘职位信息
    MATLAB 信号与系统
    Python爬虫学习(2)- Ajax的Get、Post方法实战
    Python爬虫学习(1)
  • 原文地址:https://www.cnblogs.com/gotodsp/p/4277230.html
Copyright © 2020-2023  润新知