Java 实现彩票程序

Python021

Java 实现彩票程序,第1张

import java.util.ArrayList

import java.util.Collections

import java.util.List

import java.util.Random

public class Main {

public static void main(String[] args) {

//红球 33 选6

List<Integer> redBall = new ArrayList<Integer>()

for(int i=0i<33i++){

redBall.add(i+1)

}

System.out.println("开奖红球:" + select(redBall, 6))

//篮球16选1

List<Integer> blueBall = new ArrayList<Integer>()  

for(int i=0i<16i++){

blueBall.add(i+1)

}

System.out.println("开奖蓝球:" + select(blueBall, 1))

}

public static List<Integer> select(List<Integer> list,int count){

List<Integer> selectedList = new ArrayList<Integer>()

Random random = new Random()

for(int i=0i<counti++){

int index = random.nextInt(list.size())

Integer number = list.get(index)

selectedList.add(number)

list.remove(index)

}

    Collections.sort(selectedList)  

return selectedList

}

}

import java.util.Arrays

import java.util.Random

public class random {  

 public static void main(String[] args) { 

  int[] numArray = new int[30]

  //生成一个存放30个数字数组

  for(int i=0i<numArray.lengthi++){

   numArray[i]=i+1

  }

  Random random = new Random()

  int randomNum = numArray.length-1

  int[] array=new int[7]

  for(int i=0i<array.lengthi++){

   int index = random.nextInt(randomNum--)

   array[i]= numArray[index]

   int temp=numArray[index]

   numArray[index]=numArray[randomNum]

   numArray[randomNum]=temp

  }

  Arrays.sort(array)

  for(int i=0i<array.lengthi++){

   System.out.print(array[i]+" ")

  }

 }

说下大致思路,就是先弄一个1-30的数组,然后随机去数组里面取数,取完一次以后把本次取的数据往数组尾部放,并把尾部没选过的数字放到中间来,然后缩小检索数组的范围(这样就不会选到选过的数字了)

import java.util.ArrayList

import java.util.Random

import java.util.Scanner

/**

* 测试彩票

* @author doulmi

*

*/

public class LotteryDemo {

public static void main( String[] args ) {

Scanner scanner = new Scanner( System.in )

System.out.print( "请输入要购买的注数:" )

System.out.println()

int buyN = 0

if ( scanner.hasNextInt() ) {

buyN = scanner.nextInt()

} else {

System.out.println( "请输入正确的数字" )

}

for ( int i = 0i <buyNi ++ ) {

Lottery lot = new Lottery()

lot.generate()

System.out.print( "第" )

System.out.print( i )

System.out.print( "注" )

lot.printData()

}

}

}

/**

* 彩票类

* @author Administrator

*

*/

class Lottery {

private static final int NUM_TO_GETOUT = 7

//能产生的最大数值为99

private static final int MAX_NUM = 35

public ArrayList<Integer >list

private int[] result

public Lottery() {

list = new ArrayList<Integer >()

for ( int i = 1i <= MAX_NUMi ++ ) {

list.add( i )

}

result = new int[ NUM_TO_GETOUT ]

}

public void generate() {

Random r = new Random()

for ( int i = 0i <NUM_TO_GETOUTi ++ ) {

result[ i ] = list.remove( r.nextInt( list.size() ) )

}

}

/**

* 关于票头的打印。。我不知道票头是什么。

*/

public void pringTitle() {

}

/**

* 实现号码的打印

*/

public void printData() {

for ( int n : result ) {

System.out.print( n )

System.out.print( " " )

}

System.out.println()

}

}