[Java]203229で番組を作ろう
Javaで宝くじプログラムを実現しましょう.
使用方法はarray、random、for methodです.
1から45までの数字から6個のソースを任意に抽出します.
ソースコードは以下の通りです.
package koreait.day8;
import java.util.Arrays;
import java.util.Random;
public class RealLotto {
//確率LottotTest.新しいアルゴリズムを使用してjavaを実装します.
上記のソースコードを実装すると、次のように宝くじ番号がランダムに割り当てられます.
使用方法はarray、random、for methodです.
1から45までの数字から6個のソースを任意に抽出します.
ソースコードは以下の通りです.
package koreait.day8;
import java.util.Arrays;
import java.util.Random;
public class RealLotto {
//確率LottotTest.新しいアルゴリズムを使用してjavaを実装します.
public static void main(String[] args) {
int[] numbers = new int[45];
Random r = new Random();
for(int i=0;i<45;i++) { //인덱스 범위 : 0 ~44
numbers[i]=i+1; //값 범위 : 1~ 45
}
System.out.println("numbers 배열 초기값 -----------------------");
System.out.println(Arrays.toString(numbers));
System.out.println("--------------- -----------------------");
int[] lotto = new int[6];
int k; //삭제할 위치의 인덱스 -> 랜던한 값으로 합니다.
for(int cnt=0;cnt<6;cnt++) {
//1. 인덱스 범위를 -1씩 줄이면서 난수 발생시킵니다.
k=r.nextInt(45-cnt); // 경계값을 45(00~44),44(0~43),43(0~42),42(0~41), 41(0~40),40(0~39)
System.out.println("k = " +k +",number =" + numbers[k]);
//2. k번째 위치의 데이터를 lotto배열에 저장합니다.
lotto[cnt]=numbers[k];
//3. 배열에서 데이터 삭제
for(int i=k;i<numbers.length-1;i++) {
numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
}
System.out.println(Arrays.toString(numbers));
}
System.out.print("최종 선택 숫자 : ");
System.out.println(Arrays.toString(lotto));
//오름차순 정렬 : 작은 값에서 큰 값 순서대로 위치를 바꿉니다.
Arrays.sort(lotto); //lotto 배열값들을 순서대로 위치 변경합니다.
System.out.println(Arrays.toString(lotto));
// k=23; //삭제할 위치의 인덱스
// for(int i=k;i<numbers.length-1;i++) {
// numbers[i] = numbers[i+1]; // 인덱스 i+1의 배열값을 인덱스 i의 값으로 변경.
// }
// System.out.println(Arrays.toString(numbers));
}
}上記のソースコードを実装すると、次のように宝くじ番号がランダムに割り当てられます.
Reference
この問題について([Java]203229で番組を作ろう), 我々は、より多くの情報をここで見つけました https://velog.io/@enoch0403/Java-220329-로또-프로그램을-만들어보자テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol