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.Arraysimport java.util.Random
public class random {
public static void main(String[] args) {
int[] numArray = new int[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.ArrayListimport 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()
}
}