: java.lang.Math 클래스는 수학 계산에 사용할 수 있는 메소드를 제공하고 있다. Math 클래스가 제공하는 메소드는 모두 static이므로 Math 클래스로 바로 사용 가능하다.
: 아래는 Math 클래스가 제공하는 메소드를 설명한 표다
// 반올림
System.out.println(Math.round(5.3));
System.out.println(Math.round(4.6));
System.out.println("------------------");
// 올림
System.out.println(Math.ceil(5.3));
System.out.println(Math.ceil(4.2));
System.out.println("------------------");
// 버림
System.out.println(Math.floor(5.3));
System.out.println(Math.floor(4.2));
System.out.println("------------------");
실행 모습
5 5 ------------------ 6.0 5.0 ------------------ 5.0 4.0 ------------------
난수를 얻어내기 위해 다양한 메소드를 제공한다. random() 메소드가 0.0에서 1 사이의 double 난수를 얻는데에만 사용한다면, Random 클래스는 boolean, int, long, float, double 난수를 얻을 수 있다.
Random() : 호출 시마다 다른 종가값(현재시간 이용)이 자동 설정
Random(long seed) : 매개값으로 주어진 종자값이 설정된다.
: 종자값(seed)을 설정할 수 있다
-> 종자값은 난수를 만드는 알고리즘에 사용되는 값으로, 종자값이 같으면 난수도 같은 값을 얻는다.
import java.util.Arrays;
import java.util.Random;
// 난수 : 예측불가
public class RandomClass_03 {
public static void main(String[] args) {
// 선택번호 6개가 저장될 배열
int[] selectNum = new int[6];
// 선택 번호를 얻기 위한 Random 객체 생성
Random random = new Random(5);
System.out.print("선택 번호 : ");
// 선택번호를 얻어 배열에 저장
for(int i=0; i<6; i++) {
selectNum[i] = random.nextInt(45) + 1;
System.out.print(selectNum[i]+ " ");
}
System.out.println();
// 당첨번호 6개가 저장될 배열 생성
int[] winningNum = new int[6];
// 당첨 번호를 얻기위한 Random 객체 생성
random = new Random(5);
System.out.print("당첨번호 : ");
// 당첨 번호를 얻어 배열에 저장
for(int i=0 ; i<6; i++) {
winningNum[i] = random.nextInt(45) + 1;
System.out.print(winningNum[i] + " ");
}
System.out.println();
// 당첨 여부
// 먼저 비교하기 전에 정렬부터 시킨다
Arrays.sort(selectNum);
Arrays.sort(winningNum);
// 배열 항목 값 비고
boolean result = Arrays.equals(selectNum, winningNum);
System.out.print("당첨 여부 : ");
if(result) {
System.out.println("1등에 당첨되었습니다");
} else {
System.out.println("당첨되지 않았습니다");
}
}
}
실행 결과
선택 번호 : 18 38 45 15 22 36 당첨번호 : 18 38 45 15 22 36 당첨 여부 : 1등에 당첨되었습니다
종자값을 똑같게 설정해보니 값이 똑같이 나온것을 확인할 수 있다.