本帖最后由 java冬冬 于 2013-5-11 04:20 编辑
- <P>/**
- 相信很多同学也都买过彩票,我偶尔路过彩票站也会买上一注,不求中奖(当然中了更好啦,哈哈),只求心里有个盼望</P>
- <P> 双色球自动生成7个号码,6个篮球1个红球,蓝红球分别生成,且注意篮球号数不能重复。
- */
- import java.util.Arrays;
- import java.util.Random;
- import java.util.Scanner;</P>
- <P>public class Lottery
- {
- /**
- 这个程序实现了简单的双色球自动摇号
- @author java冬冬
- */</P>
- <P> 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 ran=new Random();
- for (int i=0;i<size ;i++ )
- {
- int j=ran.nextInt(seed.length-i);//得到一个位置,范围依次递减,避免与尾部重复
- ranArr[i]=seed[j]; //得到那个位置的数值
- seed[j]=seed[seed.length-1-i]; //将最后一个未用的数字放在这里
- }
- return ranArr; //返回结果
- }
- /**
- 把蓝红球分开生成,红球只有一个,直接生成即可,篮球6个不重复的号可以循环输出
- */</P>
- <P> public static void main(String[] args)
- {
- int[] ranArr={}; //存放蓝色球
- int red;
- Scanner input=new Scanner(System.in);
- Random ran=new Random(); //创建随机数对象</P>
- <P> System.out.println("欢迎使用双色球自动摇号系统");
- System.out.print("确实摇号(y/n)?");
- String go; //继续摇号标志
- go=input.next();
- while(go.equalsIgnoreCase("y")) //输入“y”继续摇号
- {
- ranArr=generateRandomNumber(1,33,6); //随机生成6个不重复的蓝色球
- red=ran.nextInt(16); //生成红色球
- System.out.println(Arrays.toString(ranArr)+" "+red);
- System.out.print("继续摇号(y/n)?");
- go=input.next(); //是否继续摇号
- }
- System.out.println("谢谢使用!");
- }
- }</P>
- <P> </P>
- <P> </P>
复制代码 执行结果:
Lottery.zip
(1.19 KB, 下载次数: 75)
|