建议使用以下浏览器,以获得最佳体验。 IE 9.0+以上版本 Chrome 31+谷歌浏览器 Firefox 30+ 火狐浏览器

Java中获取不重复随机数的方法

本文章发表于:2023-08-29

  在Java中,获取不重复随机数的方法通常涉及到使用随机数生成器,配合数组或集合等数据结构来跟踪已经生成的随机数。下面我们将详细介绍这种方法。

 

  首先我们需要一个方法来生成随机数。Java的java.util.Random类提供了这样的功能。以下是如何创建一个简单的随机数生成器:

 java

  java复制代码Random rand = new Random();

 

  然后我们可以使用nextInt(int n)方法来生成一个介于0(包含)和n(不包含)之间的随机整数。

 

  为了确保生成的随机数不重复,我们可以使用一个数组来存储已经生成的随机数。每次生成一个新的随机数时,我们首先检查这个数是否已经在数组中存在。如果存在,我们就重新生成一个新的随机数。如果不存在,我们就将其添加到数组中。

 

  以下是一个简单的示例代码:

 

  java复制代码import java.util.Random; public class UniqueRandomNumbers { private static final int MAX_RANDOM_NUMBER = 100; // 假设我们生成的随机数在0到100之间 private static final int NUMBER_OF_RANDOM_NUMBERS = 10; // 假设我们需要生成10个不重复的随机数 private static Random rand = new Random(); private static int[] generatedNumbers = new int[NUMBER_OF_RANDOM_NUMBERS]; private static int count = 0; public static void main(String[] args) { generateUniqueRandomNumbers(); printNumbers(); } private static void generateUniqueRandomNumbers() { for (int i = 0; i < NUMBER_OF_RANDOM_NUMBERS; i++) { int randomNumber = rand.nextInt(MAX_RANDOM_NUMBER + 1); if (contains(randomNumber)) { continue; // 如果该随机数已经存在,就跳过,继续生成下一个 } else { generatedNumbers[i] = randomNumber; // 如果该随机数不存在,就将其添加到数组中 count++; } } } private static boolean contains(int number) { for (int i = 0; i < count; i++) { if (generatedNumbers[i] == number) { return true; // 如果该随机数已经存在,就返回true } } return false; // 如果该随机数不存在,就返回false } private static void printNumbers() { for (int i = 0; i < count; i++) { System.out.println(generatedNumbers[i]); // 打印生成的随机数 } } }

 

  这个程序首先定义了一个MAX_RANDOM_NUMBER和一个NUMBER_OF_RANDOM_NUMBERS常量,分别表示随机数的最大值和需要生成的随机数的数量。然后,它使用一个数组generatedNumbers来存储已经生成的随机数,使用一个count变量来跟踪已经生成的随机数的数量。在generateUniqueRandomNumbers()方法中,它循环生成随机数,并检查这个随机数是否已经在数组中存在。如果存在,就跳过这个随机数,如果不存在,就将其添加到数组中。最后,printNumbers()方法打印出所有已经生成的随机数。

新闻中心 > 技术分享

Java中获取不重复随机数的方法

本文章发表于:2023-08-29 12:36:00

  在Java中,获取不重复随机数的方法通常涉及到使用随机数生成器,配合数组或集合等数据结构来跟踪已经生成的随机数。下面我们将详细介绍这种方法。

 

  首先我们需要一个方法来生成随机数。Java的java.util.Random类提供了这样的功能。以下是如何创建一个简单的随机数生成器:

 java

  java复制代码Random rand = new Random();

 

  然后我们可以使用nextInt(int n)方法来生成一个介于0(包含)和n(不包含)之间的随机整数。

 

  为了确保生成的随机数不重复,我们可以使用一个数组来存储已经生成的随机数。每次生成一个新的随机数时,我们首先检查这个数是否已经在数组中存在。如果存在,我们就重新生成一个新的随机数。如果不存在,我们就将其添加到数组中。

 

  以下是一个简单的示例代码:

 

  java复制代码import java.util.Random; public class UniqueRandomNumbers { private static final int MAX_RANDOM_NUMBER = 100; // 假设我们生成的随机数在0到100之间 private static final int NUMBER_OF_RANDOM_NUMBERS = 10; // 假设我们需要生成10个不重复的随机数 private static Random rand = new Random(); private static int[] generatedNumbers = new int[NUMBER_OF_RANDOM_NUMBERS]; private static int count = 0; public static void main(String[] args) { generateUniqueRandomNumbers(); printNumbers(); } private static void generateUniqueRandomNumbers() { for (int i = 0; i < NUMBER_OF_RANDOM_NUMBERS; i++) { int randomNumber = rand.nextInt(MAX_RANDOM_NUMBER + 1); if (contains(randomNumber)) { continue; // 如果该随机数已经存在,就跳过,继续生成下一个 } else { generatedNumbers[i] = randomNumber; // 如果该随机数不存在,就将其添加到数组中 count++; } } } private static boolean contains(int number) { for (int i = 0; i < count; i++) { if (generatedNumbers[i] == number) { return true; // 如果该随机数已经存在,就返回true } } return false; // 如果该随机数不存在,就返回false } private static void printNumbers() { for (int i = 0; i < count; i++) { System.out.println(generatedNumbers[i]); // 打印生成的随机数 } } }

 

  这个程序首先定义了一个MAX_RANDOM_NUMBER和一个NUMBER_OF_RANDOM_NUMBERS常量,分别表示随机数的最大值和需要生成的随机数的数量。然后,它使用一个数组generatedNumbers来存储已经生成的随机数,使用一个count变量来跟踪已经生成的随机数的数量。在generateUniqueRandomNumbers()方法中,它循环生成随机数,并检查这个随机数是否已经在数组中存在。如果存在,就跳过这个随机数,如果不存在,就将其添加到数组中。最后,printNumbers()方法打印出所有已经生成的随机数。

热门资讯

您对快快产品更新的整体评价是?

期待您提供更多的改进意见(选填)

提交成功~
提交失败~

售前咨询

售后咨询

  • 紧急电话:400-9188-010

等级保护报价计算器

今天已有1593位获取了等保预算

所在城市:
机房部署:
等保级别:
服务器数量:
是否已购安全产品:
手机号码:
手机验证码:
开始计算

稍后有等保顾问致电为您解读报价

拖动下列滑块完成拼图

您的等保预算报价0
  • 咨询费:
    0
  • 测评费:
    0
  • 定级费:
    0
  • 产品费:
    0
联系二维码

详情咨询等保专家

联系人:潘成豪

13055239889