기금넷 공식사이트 - 회사 연구 - JAVA 코스 디자인 복권 번호 생성기
JAVA 코스 디자인 복권 번호 생성기
콘솔에 출력되지만 당첨 확률을 계산하지 않는 Super Lotto 코드가 있습니다. 1. 먼저 아이디어에 대해 이야기해 보겠습니다. 2개의 배열과 2개를 선언합니다. 변수 배열. 앞 부분에 35개의 숫자를 넣고 뒷 부분에 12개의 숫자를 넣습니다. 변수는 이 두 배열의 길이 b입니다. 먼저 앞 부분에 있는 5개의 숫자를 무작위로 얻습니다. 앞부분의 길이) 난수를 얻으려면 첫 번째 배열에서 첨자가 이 난수인 요소를 찾아서 변수에 넣으세요. 여기서 정규식을 사용할 수 있습니다. 숫자인지 확인하고, 그렇다면 0으로 완성합니다. 그런 다음 배열에서 이 요소를 제거합니다. 물론 배열을 저장하는 변수에서 1을 뺀 다음 위의 작업을 4번 반복해야 합니다. 1-35에서 반복되지 않는 숫자 5개를 얻습니다. c. 위와 동일합니다. 2. 첨부 코드 SuperJoyful.javaimport java.util .ArrayList;
import java.util.Arrays;
java.util.List 가져오기;
java.util.Random 가져오기;
java.util.regex.Matcher 가져오기;
java.util 가져오기. regex.Pattern;/**
* 다음은 확률에 의해 엄격하게 생성된 슈퍼 복권 난수 선택 함수의 시뮬레이션입니다.
* @author Jack
*
*/
public class SuperJoyful {
// 앞부분 번호를 저장할 리스트 선언
private List< Integer> objFrontList = new ArrayList
// 뒷부분 번호를 저장할 리스트 선언
private List
// 출력 시 확인을 위해 한 자리 숫자인지 확인하는 데 사용되는 정규식 개체를 선언합니다.
Pattern objP = Pattern.compile("\\d" );
// 연산할 문자열
Matcher objM = null
String[] Front = new String[5];
String[] Back = new String[2]; // 복권 번호 초기화
public void init() {
for (int i = 1; i <= 35; i++) {
objFrontList.add(i);
}
for (int i = 1; i <= 12; i++) {
objBackList.add(i);
}
} // 복권 시작
public void startLottery() {
Random objRandom = new Random();
int nFrontCount = 35;
프론트 존 번호 총 개수
int nBackCount = 12; // 백 존 번호 총 개수 // 추첨 전 LIST를 비운 후 초기화
objFrontList.clear();
//System.out.println(objFrontList);
objBackList.clear();
//System.out.println(objBackList); p>
this.init();
/**
* 앞부분 번호 5개 생성
*/
for ( int i = 0; i < 5; i++) {
//System.out.println("nFrontCount:"+nFrontCount);
//처음에는 35개입니다. 앞 지역 코드, 무작위로 인덱스 생성
int nIndex = objRandom.nextInt(nFrontCount);
// 정규식 확인을 통해 선택한 숫자를 변수에 임시 저장 p >
int nTemp = objFrontList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 얻은 숫자를 일반 숫자와 비교합니다. 표현식 매칭
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 한 자리 숫자인 경우, 그런 다음 앞에 0을 추가합니다.
if (flag) {
Front[i] = ("0" + strTemp + " ");
} else {
Front[i] = (strTemp + " ");
}
// 하나를 선택했기 때문에 LIST의 이 인덱스에 있는 숫자를 삭제합니다. 더 이상 되돌리지 않습니다
objFrontList.remove(nIndex);
// 총 개수가 1개 감소합니다.
nFrontCount--;
}
Arrays.sort(Front);
for (int n = 0; n < Front.length; n++) {
시스템. out.print( Front[n] + "\t");
}
System.out.print("+ ");
/* *
* 백존 번호 2개 생성
*/
for (int i = 0; i < 2; i++) {
//System.out.println("nBackCount:"+nBackCount);
// 처음에는 뒷지역 코드가 12개이고, 인덱스는 무작위로 생성됩니다.
int nIndex = objRandom.nextInt(nBackCount);
// 선택한 번호를 임시 저장합니다. 정규식 유효성 검사를 사용하는 변수에서
int nTemp = objBackList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 얻은 숫자를 정규식과 일치시킵니다.
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 한 자리 숫자인 경우 앞에 0을 채웁니다.
if (flag) {
Back[i] = ("0" + strTemp + " ") ;
} else {
Back[i] = (strTemp + " ");
}
// LIST에서 삭제 이 인덱스의 숫자는 하나가 선택되었기 때문에 되돌려지지 않습니다.
objBackList.remove(nIndex);
// for(int n = 0; n // System.out.println("objBackList:"+objBackList.get(n )); // } / /총 개수가 1개 감소합니다. nBackCount--; } Arrays.sort(Back); for ( int n = 0; n < Back.length; n++) { System.out.print(Back[n] + "\t"); } // 배팅 1회 발생 후 입장 System.out.println(""); } // 필요에 따라 복권 매수 출력 public void outPutLottery(int vnCount) { for (int i = 0; i < vnCount; i++) { this.beginLottery(); } } /** * @param a rgs */ public static void main(String[] args) { SuperJoyful objSJ = new SuperJoyful(); EnterConsole objEC = new EnterConsole(); // 숫자인지 아닌지 일치하는 정규식 객체를 선언합니다. Pattern objP = Pattern.compile("\\d{ 1 ,}"); // 연산할 문자열 Matcher objM = null; // 콘솔 입력 수신 String objTemp = (String) objEC.printConsole(); //String strTemp = (String)objTemp; objM = objP.matcher(objTemp); 부울 플래그 = objM.matches(); int nTemp = 0; if (flag) { nTemp = new Integer(objTemp ) ; } else { System.out.println("죄송합니다. 숫자만 입력할 수 있습니다!"); } objSJ.outPutLottery(nTemp); } }EnterConsole.javaimport java.io.BufferedReader; import java.io.IOException; p> import java.io.InputStreamReader; 공용 클래스 EnterConsole { 공용 객체 printConsole(){ System.out.print("무작위로 선택할 노트 수를 입력하고 확인 후 Enter를 누르세요:"); BufferedReader objBR = new BufferedReader(new InputStreamReader(System.in)); p> String strValue = null; try { strValue = (String)objBR.readLine(); } catch ( IOException e ) { // TODO 자동 생성된 catch 블록 e.printStackTrace(); } strValue를 반환; } }
- 관련 기사
- 시사에 대한 최신 뉴스와 댓글을 작성하는 방법은 무엇인가요?
- 전 세계 Zibo Ceramics의 발전 수준은 어느 정도인가요?
- 천둥신 유시루의 결말
- 올림픽 스포츠 신도시 하이탕 정원의 '5대 인증'은 무엇이며, 근처에는 어떤 학교가 있나요?
- 홍콩 HSBC 은행 전화번호는 몇 번입니까?
- Apple의 Tmall 공식 플래그십 스토어가 4월 17일 일찍 문을 닫고 여전히 오후 8시에 개장하지 않는 것에 대해 어떻게 생각하시나요?
- 광저우의 8경은 어디인가요?
- 식품 안전 문제가 발생할 때 귀하의 권리를 어떻게 보호할 수 있나요?
- 칸 영화제에서 국가별 황금종려상 수상 기록은 얼마나 됩니까?
- 2022년 봄 축제 갈라의 프로그램은 무엇인가요?