热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java实现生成指定数量的不重复随机数

本文将详细介绍如何使用Java编程语言生成指定数量的不重复随机数,包括具体的实现方法和代码示例。适合初学者和有一定基础的开发者参考。

在Java编程中,生成指定数量的不重复随机数是一个常见的需求。本文将通过具体示例展示如何实现这一功能。我们将使用Java的基本库来完成这项任务,并提供详细的代码解释。

### 需求说明:

根据给定的最小值(min)和最大值(max),生成n个不重复的随机数,其中n小于或等于(max - min + 1)。

### 实现思路:

1. 创建一个包含从min到max所有可能值的列表。

2. 使用随机索引从列表中选取一个值,并将其移除,确保每次选取的值不会重复。

### 代码示例:

import java.util.ArrayList;
import java.util.List;
import java.util.Random;

public class UniqueRandomGenerator {
/**
* 生成一个在[min, max]范围内的随机数。
* @param min 最小值
* @param max 最大值
* @return 随机数
*/
public int generateSingleRandom(int min, int max) {
Random random = new Random();
return random.nextInt(max - min + 1) + min;
}

/**
* 生成指定数量的不重复随机数。
* @param min 最小值
* @param max 最大值
* @param count 需要生成的随机数数量
* @return 不重复的随机数数组
*/
public int[] generateUniqueRandoms(int min, int max, int count) {
if (count > (max - min + 1)) {
return null;
}

List candidateNumbers = new ArrayList<>();
for (int i = min; i <= max; i++) {
candidateNumbers.add(i);
}

int[] uniqueRandoms = new int[count];
Random random = new Random();
for (int i = 0; i int index = generateSingleRandom(0, candidateNumbers.size() - 1);
uniqueRandoms[i] = candidateNumbers.get(index);
candidateNumbers.remove(index);
}

return uniqueRandoms;
}
}

### 示例应用:

public class Main {
public static void main(String[] args) {
UniqueRandomGenerator generator = new UniqueRandomGenerator();
int[] randomNumbers = generator.generateUniqueRandoms(1, 20, 10);
for (int num : randomNumbers) {
System.out.println(num);
}
}
}

以上代码展示了如何在Java中生成指定数量的不重复随机数。希望对您有所帮助!


推荐阅读
author-avatar
卧龙先生八斗才
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有