实例一
/***
* 通过Random类的实例生成伪随机数流,常用的伪随机数生成方法,类型包括Boolean,int,long,double
* 本例使用setSeed()方法设置随机数种子值。使用nextInt()方法获得一个小于参数值的随机整数
* setSeed()方法:random类的setSeed()方法使用单个long种子,设置次随机数生成器的种子值,
* public void setSeed(long seed)
* seed:为随机数生成器设置的种子值
* nextInt()方法
* random类的nextInt()方法用于返回一个伪随机数。它是取自次随机数生成器序列在0(包括)和指定值(不包括)之间均匀分布的int值
* public intnextInt(int n)
* n:要返回的随机数的范围,必须为正数
* 返回值:下一个伪随机数,它是取自此随机数生成器序列中0(包括)和n(不包括)之间均匀分布的int值
*
*
* **/
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int times = scanner.nextInt();// 获得用户输入的需要生成的中奖号码个数
// 省略提示购买数量太多的代码
StringBuilder sb = new StringBuilder();// 利用StringBuilder类保存彩票中奖号码
for (int i = 0; i < times; i++) {
int number = new Random().nextInt((int) Math.pow(10, 7));// 生成随机数
String luckNumber = "" + number;
while (luckNumber.length() < 7) {
luckNumber = "0" + luckNumber;// 如果随机数长度不够7位用0补齐
}
sb.append(luckNumber + "\n");
}
System.out.println(sb.toString());// 显示生成的中奖号码
}
}
实例二
/**
*使用list计划存储号码,然后从该List集合中随机获得号码。由于大乐透的每一组号码中的前段号码或后短号码是不允许重复的,
* 因此从List集合中随机获得的号码后,就将所获得的号码从该List集合中移除,这样可以避免获得的号码重复
* **/
public static void main(String[] args) {
Scanner scanner =new Scanner(System.in);
int times =scanner.nextInt();// 获得用户输入的需要生成的中奖号码个数
// 省略提示购买数量太多的代码
StringBuilder sb = new StringBuilder();// 创建字符串生成器对象
for (int i = 0; i < times; i++) {
List<String> startList = getStartNumber();// 获得前段号码的集合
List<String> endList = getEndNumber();// 获得后段号码的集合
for (int m = 0; m < startList.size(); m++) {
sb.append(startList.get(m));// 在字符串生成器中添加前段号码
}
sb.append(" ");
for (int n = 0; n < endList.size(); n++) {
sb.append(endList.get(n));// 在字符串生成器中添加后段号码
}
sb.append("\n");
}
System.out.println(sb.toString());// 在文本域中显示号码
}
/**
* 随机生成前段5个号码的方法
*
* @return
*/
public static List<String> getStartNumber() {
List<String> list = new ArrayList<String>(); // 创建前段号码集合
String luckyNumber = "";
for (int i = 1; i < 36; i++) { // 初始化前段号码集合
if (i < 10) {
list.add("0" + i + " ");// 添加0~9的号码
} else {
list.add("" + i + " ");// 添加大于9的号码
}
}
int roundIndex = 0;
List<String> luckylist = new ArrayList<String>(); // 保存前段号码的List集合
for (int j = 0; j < 5; j++) {
int amount = list.size(); // 获取前段号码的个数
Random r = new Random(); // 创建并实例化Random的对象
roundIndex = r.nextInt(amount); // 获取一个0到amount-1的随机数
luckyNumber = list.get(roundIndex); // 获取幸运数字
luckylist.add(luckyNumber); // 添加luckylist中
list.remove(roundIndex); // 移除刚刚产生的号码
}
Collections.sort(luckylist); // 对前段号码进行排序
return luckylist;
}
/**
* 随机生成后段2个号码的方法
*
* @return
*/
public static List<String> getEndNumber() {
List<String> list = new ArrayList<String>(); // 创建后段号码集合
String luckyNumber = "";
for (int i = 1; i < 13; i++) { // 初始化后段号码集合
if (i < 10) {
list.add("0" + i + " ");// 添加0~9的号码
} else {
list.add("" + i + " ");// 添加大于9的号码
}
}
int roundIndex = 0;
List<String> luckylist = new ArrayList<String>(); // 保存后段号码的List集合
for (int j = 0; j < 2; j++) {
int amount = list.size(); // 获取后段号码的个数
Random r = new Random(); // 创建并实例化Random的对象
roundIndex = r.nextInt(amount); // 获取一个0到amount-1的随机数
luckyNumber = list.get(roundIndex); // 获取幸运数字
luckylist.add(luckyNumber); // 添加luckylist中
list.remove(roundIndex); // 移除刚刚产生的号码
}
Collections.sort(luckylist); // 对后段号码进行排序
return luckylist;
}