java - 根据每个用户可预测地随机化项目列表

标签 java random

我需要确保指定网页的每个用户以随机顺序返回对象列表。我需要确保如果重新加载页面,这些对象保持相同的随机顺序。以下初始化随机数生成器的方法能否确保我始终在每个用户的基础上获得相同的随机数序列,无论使用哪种 JVM 或 JVM 版本?

Random random = new Random();
random.setSeed(username.hashCode());

我们不需要真正的随机性,我们只需要确保每个用户不会以相同的顺序看到“问题”。

最佳答案

来自Oracle Documentation :

If two instances of Random are created with the same seed, and the same sequence of method calls is made for each, they will generate and return identical sequences of numbers.

因此,如果两个 Random 对象使用相同的种子(例如您的 username.hashcode)进行初始化,并且对这些对象进行相同的调用序列,那么它们将始终返回相同的结果。

关于java - 根据每个用户可预测地随机化项目列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19851965/

相关文章:

python - 我可以从开区间上的均匀分布中抽取一个随机值吗?

javascript - 在 Vanilla JavaScript Hangman 游戏中触发 "Win"

VBA Excel "error 13: type mismatch"

php - 如何实现随机浮点函数使其不丢失熵? (PHP)

java - 比较 java 中的 Long 值

java - 我可以将数组的一部分设为最终/不可更改吗?

java - 在 Java 中使用 JaCop 优化函数

java - 如何将语音转换为文字?

java - 如何使用 Google Fit API 按需获取 SmartBand2 的实时心率?

javascript - JavaScript 上的不同随机字符串锦标赛匹配