当您生成随机数时,通常情况下,每个生成的数都必须是唯一的。挑选彩票号码就是一个很好的例子。从一个范围(例如,1到40)随机选取的每个数字必须是唯一的,否则,抽奖无效。
选择唯一随机数的最简单方法是将数字范围放入一个称为ArrayList的集合中。如果您以前没有遇到过ArrayList,那么这是一种存储一组没有固定数字的元素的方法。元素是可以添加到列表或从列表中删除的对象。例如,让我们制作彩票号码选择器。它需要从1到40之间选择唯一的数字。
首先,使用add()方法将数字放入ArrayList。它将要添加的对象作为参数:
import java.util.ArrayList;public class Lottery { public static void main(String[] args) { //define ArrayList to hold Integer objects ArrayList numbers = new ArrayList(); for(int i = 0; i < 40; i++) { numbers.add(i+1); } System.out.println(numbers); }}注意,我们对元素类型使用整数包装类,因此ArrayList包含对象而不是原始数据类型。
输出按顺序显示从1到40的数字范围:
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40]名为Collections的实用程序类提供了可以对集合(如ArrayList)执行的不同操作(例如,搜索元素、查找最大或最小元素、颠倒元素顺序等)。它可以执行的操作之一是洗牌元素。随机移动会将每个元素随机移动到列表中的不同位置。它通过使用随机对象来实现这一点。这意味着这是一种确定性的随机性,但在大多数情况下都可以。
要洗牌ArrayList,请将集合导入添加到程序顶部,然后使用洗牌静态方法。它将ArrayList作为参数进行洗牌:
import java.util.Collections;import java.util.ArrayList;public class Lottery {public static void main(String[] args) {//define ArrayList to hold Integer objectsArrayList numbers = new ArrayList();for(int i = 0; i < 40; i++){numbers.add(i+1);}Collections.shuffle(numbers);System.out.println(numbers);}}现在,输出将以随机顺序显示ArrayList中的元素:
[24, 30, 20, 15, 25, 1, 8, 7, 37, 16, 21, 2, 12, 22, 34, 33, 14, 38, 39, 18, 36, 28, 17, 4, 32, 13, 40, 35, 6, 5, 11, 31, 26, 27, 23, 29, 19, 10, 3, 9]要拾取唯一的随机数,只需使用get()方法逐个读取ArrayList元素。它将元素在ArrayList中的位置作为参数。例如,如果彩票计划需要从1到40之间选择6个号码:
import java.util.Collections;import java.util.ArrayList;public class Lottery {public static void main(String[] args) {//define ArrayList to hold Integer objectsArrayList numbers = new ArrayList();for(int i = 0; i < 40; i++){numbers.add(i+1);}Collections.shuffle(numbers);System.out.print("This week's lottery numbers are: ");for(int j =0; j < 6; j++){System.out.print(numbers.get(j) + " ");}}}输出为:
This week's lottery numbers are: 6 38 7 36 1 18... LastPass以其密码生成器而闻名,还有很多其他的在线工具,但是你知道你不需要它们吗?谷歌Chrome有一个内置的工具。 ...
... 你可以让你的Mac生成一个随机的Mac地址,或者你可以输入一个你已经知道的Mac地址。如果更换了网络适配器,无法连接到internet,则应手动输入旧的MAC地址。如果你欺骗你的MAC地址以增强...
... RNG代表随机数发生器。这被定义为一种随机产生数字的装置或算法。在游戏术语中,RNG指的是每次你玩的时候都不一样的事件。 ...
...完美的密码是很棘手的。谢天谢地,您可以使用在线密码生成器为您的帐户创建一个强大且唯一的密码。下面是最好的在线强随机密码生成器。 ...
...googlesheets提供了一个简单的函数,可以在电子表格中生成随机数,而无需离开文档或安装附加组件。函数返回两个值之间的随机整数。下面是如何使用它。 启动googlesheets主页,打开一个新的或现有的电子表格。对于本指南,我...
...板或填充文本。一种解决方案是使用lorem ipsum或虚拟文本生成器来创建文本。或者,您可以直接在Word中创建文本。 使用rand公式生成随机文本 如果要在Word文档中使用随机(但连贯)文本作为填充内容,可以使用Word提供的随机...
...与地下城和其他角色扮演游戏设计地下城吗?随机地下城生成器可以帮你,所以你可以专注于故事。 这不是一个复杂的应用程序:您只需提供一个随机的数字字符串和入口的位置。该应用程序将输出一个随机地牢设计,你可以...
计算机为从密码学到电子游戏和赌博的所有东西生成随机数。随机数有两类——“真”随机数和伪随机数,两者的区别对于加密系统的安全性非常重要。 计算机可以通过观察一些外部数据(如鼠标移动或风扇噪音,这是不可预...