闲来无事,我做了一个彩票号码生成器,该程序是个通用程序,方法generateNumber(M, N, P)表示M选N的彩票买了P注, 例如:generateNumber(35, 7, 5);表示35选7买5注.本程序在JDK1.5,Eclipse3.1.2下测试成功! import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
import java.util.Random;
import java.util.Set; /**
* @author 我为J狂
*
*/ public class GenerateNumber {
public static void generateNumber(int m, int n, int p){
for (int i = 0; i < p; i++) {
Set<Integer> numbers = new HashSet<Integer>();
while (true) {
Random random = new Random();
int newNumber = random.nextInt(m);
numbers.add(newNumber + 1);
if (numbers.size() == n)
break;
}
List<Integer> sortNumbers = new ArrayList<Integer>(numbers);
String numberStr = "";
Collections.sort(sortNumbers);
for (int num : sortNumbers){
String number = "";
if (num < 10)
number = "0" + num;
else
number = String.valueOf(num);
if (!numberStr.equals(""))
numberStr += ",";
numberStr += number;
}
System.out.print(numberStr);
System.out.println();
}
} public static void main(String[] args) {
generateNumber(35, 7, 5);//35选7买5注
}
} 运行结果: C:java>java GenerateNumber
08,19,26,29,30,31,35
12,17,21,23,28,31,34
05,17,19,20,21,28,31
11,16,22,25,29,34,35
03,10,13,14,21,30,31 C:java>java GenerateNumber
05,13,14,16,18,26,29
08,15,22,23,26,33,35
04,10,13,17,22,25,29
04,05,12,15,23,34,35
01,11,16,18,20,22,29 C:java>java GenerateNumber
04,14,25,26,29,30,31
03,05,09,18,21,26,29
03,07,15,26,29,31,35
05,09,17,20,23,24,34
04,13,15,22,29,31,33
源码下载:http://file.javaxxz.com/2014/10/2/061520766.zip |