我知道有很多关于Android和Java中随机数生成的主题。我目前正在编写一个可以滚动5个骰子的应用程序。我目前使用Random()
来生成这些数字。这是我的代码:
Random r = new Random();
a[0] = r.nextInt(6)+1;
a[1] = r.nextInt(6)+1;
a[2] = r.nextInt(6)+1;
d[0] = r.nextInt(6)+1;
d[1] = r.nextInt(6)+1;
文档说没有自定义种子的Random()
足以满足大多数任务。当我在如此短的时间内生成5个随机数时,它是否仍然是随机的?如果我在每个随机数后生成一个新的Random()
对象,会有什么不同吗?
答案 0 :(得分:0)
如果你不使用自定义种子(例如基于时间或某些非易重复的itme),那么每次执行时你的结果都会重复(即你将获得相同的伪随机数序列)。
您想要添加自定义种子,以便连续执行程序并不总是具有相同的结果。
虽然简单的家庭作业问题没有必要使用自定义种子,但添加自定义种子的使用是个好主意(这样你就可以了解如何做到这一点以及为什么可能需要更复杂的种子问题解决)。
答案 1 :(得分:0)
每次生成随机数时都不需要新的种子。相同的种子将生成相同的随机数字序列,因此您必须担心生成不可预测的种子。默认构造函数Random()
将根据当前时间生成种子部分,这应该足以满足您的目的。