生成唯一随机数

当您生成随机数时,通常情况下,每个生成的数都必须是唯一的。挑选彩票号码就是一个很好的例子。从一个范围(例如,1到40)随机选取的每个数字必须是唯一的,否则,抽奖无效。...

当您生成随机数时,通常情况下,每个生成的数都必须是唯一的。挑选彩票号码就是一个很好的例子。从一个范围(例如,1到40)随机选取的每个数字必须是唯一的,否则,抽奖无效。

Businessman working in office

使用集合

选择唯一随机数的最简单方法是将数字范围放入一个称为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类

名为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

  • 发表于 2021-09-12 23:39
  • 阅读 ( 186 )
  • 分类:IT

你可能感兴趣的文章

通过使用chrome自动生成的密码提高网络安全性

... LastPass以其密码生成器而闻名,还有很多其他的在线工具,但是你知道你不需要它们吗?谷歌Chrome有一个内置的工具。 ...

  • 发布于 2021-03-12 15:18
  • 阅读 ( 199 )

如何更改mac的mac地址(以及原因)

... 你可以让你的Mac生成一个随机的Mac地址,或者你可以输入一个你已经知道的Mac地址。如果更换了网络适配器,无法连接到internet,则应手动输入旧的MAC地址。如果你欺骗你的MAC地址以增强...

  • 发布于 2021-03-13 06:39
  • 阅读 ( 266 )

什么是rng?给玩家上的一课

... RNG代表随机数发生器。这被定义为一种随机产生数字的装置或算法。在游戏术语中,RNG指的是每次你玩的时候都不一样的事件。 ...

  • 发布于 2021-03-19 11:50
  • 阅读 ( 203 )

5个密码工具,用于创建强密码短语和更新安全性

...第一个字母大写(可选) 在列表末尾附加随机数(可选) ...

  • 发布于 2021-03-19 21:41
  • 阅读 ( 246 )

强随机密码的5个最佳在线密码生成器

...完美的密码是很棘手的。谢天谢地,您可以使用在线密码生成器为您的帐户创建一个强大且唯一的密码。下面是最好的在线强随机密码生成器。 ...

  • 发布于 2021-03-20 00:00
  • 阅读 ( 910 )

5个免费的锻炼和锻炼发电机,为更好的例行程序

...变得无聊。让我们为不同类型的练习使用一些随机的训练生成器来解决这个问题。 ...

  • 发布于 2021-03-26 23:04
  • 阅读 ( 179 )

如何在google表单中生成随机数

...googlesheets提供了一个简单的函数,可以在电子表格中生成随机数,而无需离开文档或安装附加组件。函数返回两个值之间的随机整数。下面是如何使用它。 启动googlesheets主页,打开一个新的或现有的电子表格。对于本指南,我...

  • 发布于 2021-04-02 23:54
  • 阅读 ( 246 )

如何在word中生成随机文本

...板或填充文本。一种解决方案是使用lorem ipsum或虚拟文本生成器来创建文本。或者,您可以直接在Word中创建文本。 使用rand公式生成随机文本 如果要在Word文档中使用随机(但连贯)文本作为填充内容,可以使用Word提供的随机...

  • 发布于 2021-04-03 15:30
  • 阅读 ( 170 )

生成随机地下城为您的d&d活动与此免费工具

...与地下城和其他角色扮演游戏设计地下城吗?随机地下城生成器可以帮你,所以你可以专注于故事。 这不是一个复杂的应用程序:您只需提供一个随机的数字字符串和入口的位置。该应用程序将输出一个随机地牢设计,你可以...

  • 发布于 2021-04-05 02:33
  • 阅读 ( 185 )

计算机如何产生随机数

计算机为从密码学到电子游戏和赌博的所有东西生成随机数。随机数有两类——“真”随机数和伪随机数,两者的区别对于加密系统的安全性非常重要。 计算机可以通过观察一些外部数据(如鼠标移动或风扇噪音,这是不可预...

  • 发布于 2021-04-08 00:19
  • 阅读 ( 191 )
阿阿阿阿离
阿阿阿阿离

0 篇文章

相关推荐