Java Android中的随机数

Java Android中的随机数,java,android,random,Java,Android,Random,我知道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; 文档表明,对于大多数任务,没有自定义种子的随机性就足够了。

我知道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;

文档表明,对于大多数任务,没有自定义种子的随机性就足够了。当我在这么短的时间内生成5个随机数时,它还足够随机吗?如果我在每个随机数之后生成一个新的随机对象,有什么区别吗?

如果您不使用自定义种子(例如基于时间或一些不易重复的itme),那么每次执行时,您的结果都会重复,即您将获得相同的伪随机数序列

您希望添加自定义种子,以便程序的连续执行不总是具有相同的结果


虽然简单的家庭作业问题不需要使用自定义种子,但最好添加自定义种子,这样您就可以了解如何使用自定义种子,以及为什么需要自定义种子来解决更复杂的问题。

您不需要每次生成随机数时都使用新种子。相同的种子将生成相同的随机数字序列,因此您必须担心生成不可预测的种子。默认的Random构造函数将部分基于当前时间生成种子,该时间应足以满足您的需要。

Random empty构造函数使用基于时间的种子,因此每次运行都会产生不同的序列。如果使用相同的自定义种子,则会得到相同的结果。