A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

[AppleScript] 纯文本查看 复制代码
package com.itheima;

import java.util.Arrays;
import java.util.Random;
import java.util.Scanner;

/*
 * 根据福利彩票的双色球玩法规则,6个蓝色球,范围为1-32,不允许重复,1个红色球,范围为1-16,自动生成6个蓝色球,一个红色球
 */
public class DoubleBall {
	public static void main(String[] args) {
		int[] ranArr = {};//存放蓝色球
		int red;
		Scanner input = new Scanner(System.in);
		Random r = new Random();
		System.out.println("欢迎使用双色球自动摇号系统");
		System.out.print("确定摇号(y/n)?");
		String go = input.nextLine();//继续摇号的标志
		while(go.equalsIgnoreCase("y")) {//输入"y"继续摇号
			ranArr = generateRandomNumber(1, 33 , 6);
			red = r.nextInt(16);//生成红色球
			System.out.println(Arrays.toString(ranArr) + " " + red);
			System.out.print("继续摇号(y/n)?");
			go = input.next();
		}
		System.out.println("谢谢使用!");
	}
	
	/*
	 * 根据指定的最小数字和最小数字,以及随机数的个数,产生指定的不重复的数组,最小数字(包含该数),最大数字(不包含该数)
	 * 
	 */
	public static int[] generateRandomNumber(int begin, int end, int size) {
		//进行判断,保证begin<end并且size不能大于该表示范围
		if (begin >= end || (end - begin) < size) {
			return null;
		}
		int[] seed = new int[end - begin];
		for (int i = begin; i < end; i++) {
			seed[i - begin] = i;
		}
		int[] ranArr = new int[size];//存放蓝色球
		Random r = new Random();
		
		for (int i = 0; i < size; i++) {//循环生成size个数
			int j = r.nextInt(seed.length - i);//得到一个位置,范围依次递减,避免与尾部重复
			ranArr[i] = seed[j];//得到那个位置的数值
			seed[j] = seed[seed.length - 1 - i];//将最后一个未用的数字放到这里			
		}
		return ranArr;
	}
}












评分

参与人数 1黑马币 +5 收起 理由
wangzhao + 5 淡定

查看全部评分

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马