使用种子的Java随机数

编程入门 行业动态 更新时间:2024-10-27 15:20:43
本文介绍了使用种子的Java随机数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

这是我使用种子作为参数生成随机数的代码:

This is my code to generate random numbers using a seed as an argument:

double randomGenerator(long seed) { Random generator = new Random(seed); double num = generator.nextDouble() * (0.5); return num; }

每次我给种子并尝试生成100个数字时,它们都是同样的。 如何解决这个问题?

Every time I give a seed and try to generate 100 numbers, they all are the same. How can I fix this?

推荐答案

如果你给的是相同的种子,这是正常的。这是允许测试的一个重要特性。

If you're giving the same seed, that's normal. That's an important feature allowing tests.

选中此项以了解伪随机生成和种子:

Check this to understand pseudo random generation and seeds:

伪随机数生成器

伪随机数生成器(PRNG),也称为确定性随机比特生成器DRBG,是一种生成序列的数字的算法,该数字近似于随机数的属性。 序列不是真正随机的,因为它完全由a确定的相对较小的初始值集合,称为PRNG的状态,包括一个真正随机的种子。

如果你想拥有不同的序列(通常不调整或调试算法的情况),你应该调用零参数使用nanoTime的构造函数每次尝试获取不同的种子。这个随机实例当然应该保留在你的方法之外。

If you want to have different sequences (the usual case when not tuning or debugging the algorithm), you should call the zero argument constructor which uses the nanoTime to try to get a different seed every time. This Random instance should of course be kept outside of your method.

你的代码应该是这样的:

Your code should probably be like this:

private Random generator = new Random(); double randomGenerator() { return generator.nextDouble()*0.5; }

更多推荐

使用种子的Java随机数

本文发布于:2023-11-08 08:09:04,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1568827.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:随机数   种子   Java

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!