java:双色球号码生成器双色球号码 红球 篮球红球 6 个 1-33篮球 1 个 1-161生成6个1至33之间的随机整数不能重复存入一个List集合2编写方法对List集合进行排序3然后利用迭代器遍历集合元素并输出生成6个双色球红号例如 2 12 14 25 28 30 4产生1-16之间的一个随机数生成1个双色球蓝号例如 155提示用户输入购买的双色球注数随机生成相应注数的双色球号码
import java.util.ArrayList; import java.util.Collections; import java.util.Iterator; import java.util.List; import java.util.Scanner;
public class DoubleColorBallGenerator {
public static void main(String[] args) {
int redNum = 6; // 红球个数
int redMin = 1; // 红球最小值
int redMax = 33; // 红球最大值
int blueMin = 1; // 蓝球最小值
int blueMax = 16; // 蓝球最大值
List<Integer> redList = generateNumList(redNum, redMin, redMax); // 生成红球号码列表
Collections.sort(redList); // 对红球号码列表进行排序
printNumList(redList, "红球"); // 输出红球号码列表
int blueNum = 1; // 蓝球个数
List<Integer> blueList = generateNumList(blueNum, blueMin, blueMax); // 生成蓝球号码列表
printNumList(blueList, "蓝球"); // 输出蓝球号码列表
Scanner scanner = new Scanner(System.in);
System.out.print("请输入购买的双色球注数:");
int count = scanner.nextInt(); // 获取购买注数
for (int i = 1; i <= count; i++) {
List<Integer> redListCopy = new ArrayList<>(redList); // 复制一份红球列表,用于随机取数
List<Integer> ballList = new ArrayList<>(); // 创建一个空列表,用于存放一组双色球号码
for (int j = 0; j < redNum; j++) {
int index = (int) (Math.random() * redListCopy.size()); // 随机生成一个索引
int num = redListCopy.remove(index); // 从红球列表中取出号码,并移除该号码,避免重复
ballList.add(num); // 将号码加入到双色球号码列表中
}
Collections.sort(ballList); // 对双色球号码列表进行排序
ballList.add(blueList.get(0)); // 将蓝球号码加入到双色球号码列表中
printNumList(ballList, "第" + i + "注"); // 输出该组双色球号码
}
scanner.close();
}
/**
* 生成指定范围内的随机整数列表,列表中不包含重复的数
* @param count 生成的数的个数
* @param minNum 最小值
* @param maxNum 最大值
* @return 生成的随机整数列表
*/
public static List<Integer> generateNumList(int count, int minNum, int maxNum) {
List<Integer> numList = new ArrayList<>();
for (int i = minNum; i <= maxNum; i++) {
numList.add(i);
}
List<Integer> resultList = new ArrayList<>();
for (int i = 0; i < count; i++) {
int index = (int) (Math.random() * numList.size()); // 随机生成一个索引
int num = numList.remove(index); // 从列表中取出号码,并移除该号码,避免重复
resultList.add(num); // 将号码加入到结果列表中
}
return resultList;
}
/**
* 输出整数列表
* @param numList 整数列表
* @param label 列表标签
*/
public static void printNumList(List<Integer> numList, String label) {
System.out.print(label + ":");
Iterator<Integer> iterator = numList.iterator();
while (iterator.hasNext()) {
int num = iterator.next();
System.out.print(num + " ");
}
System.out.println();
}
原文地址: https://www.cveoy.top/t/topic/fEBa 著作权归作者所有。请勿转载和采集!