none
请问随机数的种子的作用是什么? RRS feed

  • 问题

  • 一直不明白随机数的种子有什么作用?最好能说的具体一点

    Random rand = new Random();不给种子一样可以产生随机数啊,那给种子和不给种子有什么区别吗?

    2011年6月1日 7:23

答案

  • 你好,

    Random产生的是伪随机数。 是根据一定算法以相同概率从一组数字中生成一个数列。

    如果使用相同的种子,那么产生的数列是相同的。

    不指定种子的话就会根据系统时钟自动选择种子。

    更多请参考:http://msdn.microsoft.com/zh-cn/library/ts6se2ek.aspx


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年6月2日 1:20
    版主
  • 不给种子数的话,在C#中根据当前时间的Tick,但是在某些语言(比如C中),产生的随机数是一样的。

    因为随机数产生是一个非常复杂的算法。主要是根据某个因子决定(产生随机数需要一个参数,当这个参数赋值以后,进过函数体内部非常复杂的加减乘除等运算,得出一个随机的结果,然后把这个结果保留,作为产生下一个随机数的条件——前一次输出的结果=后一次输入的参数)。

    这儿给出一个模拟随机数算法的程序,你可以看看,知道原理:http://blog.csdn.net/samulelin/archive/2008/01/14/2043369.aspx


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年6月2日 3:19
    版主

全部回复

  • 你好,

    Random产生的是伪随机数。 是根据一定算法以相同概率从一组数字中生成一个数列。

    如果使用相同的种子,那么产生的数列是相同的。

    不指定种子的话就会根据系统时钟自动选择种子。

    更多请参考:http://msdn.microsoft.com/zh-cn/library/ts6se2ek.aspx


    Min Zhu [MSFT]
    MSDN Community Support | Feedback to us
    Get or Request Code Sample from Microsoft
    Please remember to mark the replies as answers if they help and unmark them if they provide no help.

    2011年6月2日 1:20
    版主
  • 不给种子数的话,在C#中根据当前时间的Tick,但是在某些语言(比如C中),产生的随机数是一样的。

    因为随机数产生是一个非常复杂的算法。主要是根据某个因子决定(产生随机数需要一个参数,当这个参数赋值以后,进过函数体内部非常复杂的加减乘除等运算,得出一个随机的结果,然后把这个结果保留,作为产生下一个随机数的条件——前一次输出的结果=后一次输入的参数)。

    这儿给出一个模拟随机数算法的程序,你可以看看,知道原理:http://blog.csdn.net/samulelin/archive/2008/01/14/2043369.aspx


    如果你有其它意见或私下交流,请发送邮件到:maledong@qq.com;或者请QQ我
    下载MSDN桌面工具(Vista,Win7)
    下载Technet桌面小工具(Vista,Win7)
    慈善点击,点击此处
    2011年6月2日 3:19
    版主