Unity - A计划(永久有效期) 扫二维码继续学习 二维码时效为半小时

(197评价)
价格: 4431.00元
关于把random放在for循环内外部,生成随机数的问题
Jarchi发起了问答2018-03-13
6
回复
1641
浏览

老师,我在学C#编程初级,有个问题请教一下

关于这个掷骰子的题目,我发现把构建新的random放在for循环里面是,生成的随机数都是连续的:

 

 

而如果把构建放在外面的话,生成的是随机的

 

关于这一点很不明白,这是为什么呢?

 

所有回复
  • siki 2018-03-13

    这个是因为随机数的生成需要有一个种子生成,由一个种子生成的数字是随机的,这个种子就是当前时间,当new Random的时候,会根据当前时间确定种子,但是你每次循环都是new的,每次种子都不一样,所以最后的结果也不是随机的

    这个种子是,保证随机数算法生成的数字是随机的一个保证

    • Jarchi 2018-03-14

      最后两句话不是很理解。。是否可以这样理解:生成随机数的机制是由种子根据时间的流逝来产生不同的随机数的,所以放在for循环里,每次都生成新的种子。而相近的几次循环因为执行的时间很近的缘故,所以种子在随机开始的时候初始值都很接近?不知道这样理解对不对

      (0) 回复
    • siki 2018-03-15

      回复 @ Jarchi: 你可以这样认为,如果是同一个种子生成的数那就是随机的, 不同种子生成的随机数 就不是随机的

      (0) 回复
    • siki 2018-03-15

      回复 @ Jarchi: 你理解的也差不多

      (0) 回复
    • Jarchi 2018-03-15

      回复 @ siki: 好的,谢谢老师

      (0) 回复
    • siki 2018-03-17

      回复 @ Jarchi: 不客气

      (0) 回复
    还有0条回复,点击查看
    你还没有登录,请先登录注册
发表回复
你还没有登录,请先 登录或 注册!