java种子数据在哪层_Java中的默认种子PRNG

我想知道Java中Math.random()背后的PRNG *的默认种子是什么.根据我的理解,C中的那个基于系统时钟.它在Java中是否相似?此外,每次调用Math.random()时种子都会更改吗?

* PRNG =伪随机数发生器

解决方法:

When this method is first called, it creates a single new

pseudorandom-number generator, exactly as if by the expression

new java.util.Random()

This new pseudorandom-number generator is used

thereafter for all calls to this method and is used nowhere else.

跟着java.util.Random(),文档说

public Random()

Creates a new random number generator. This constructor sets the seed

of the random number generator to a value very likely to be distinct

from any other invocation of this constructor.

当前的实现似乎基于System.nanoTime(),但可能会更改并仍然符合文档的合同.

至于每次通话都要改变种子,那不是种子的运作方式. PRNG被播种一次,然后产生一系列从初始状态演变而来的值.你不应该,Java也不应该继续重播.

标签:java,random,prng

来源: https://codeday.me/bug/20190612/1227158.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值