BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #28862同步于 2014/3/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

java里如何模拟均匀分布?

szky
2014/3/18镜像同步3 回复
对概率模型要求高,所以对随机数的产生方式比较敏感。我不是计算机专业,所以只是草草查了下函数库和网络资料,不能定论,于是来求助一下! 1. java里的math.random(),经验证产生随机序列不够均匀。我发现math.random()不用设置种子也能够每次运行程序跑出不同的随机值,所以我觉得是它帮我自动设置了随机产生的种子。但是这里有一个问题,如果我的种子是不一样的,由于随机序列是由移位寄存器产生的,那么实际上我产生的随机数是,不同随机序列中“某一个”随机数的集合,这样就丧失了随机序列的随机性,因为一个随机序列被设计时是相对具有随机性的,比如m序列,golden序列啥。但是通过不同种子而选出来的多个随机序列的“抓阄”的集合显然不会具有这样的性质。我认为这个是导致math.random()产生不了均匀分布的原因。 我的想法是对的吗? 2. 考虑到以上情况,在用Random(),就不能改种子了。然后我要从不同类多次调用这个random怎么使得第一次调用产生的是序列的一个,第二次调用产生的是序列的另一个而不是每次产生的都是同样的值呢= =(好像是个比较菜的问题) 3.我不知道Random()能否产生比较好的均匀分布,但是在c中的rand()可以。如果能告诉我java如果做均匀分布效果比较好是最好的了
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nuanyangyang机器人#1 · 2014/3/18
从/dev/random里读取呢?不过,这是真随机数,真随机数是很宝贵的。
shenlei机器人#2 · 2014/3/18
跪求真随机数 【 在 nuanyangyang (暖羊羊) 的大作中提到: 】 : 从/dev/random里读取呢?不过,这是真随机数,真随机数是很宝贵的。
szky机器人#3 · 2014/3/18
不懂OTL 如何做 【 在 nuanyangyang 的大作中提到: 】 : 从/dev/random里读取呢?不过,这是真随机数,真随机数是很宝贵的。