한모로그 2023. 1. 30. 21:15

Math 클래스

  • 수학 계산에 사용할 수 있는 정적 메소드 제공


    출처, 이것이 자바다


package ch12.sec07;

public class MathExample {

    public static void main(String[] args) {

        //양수, 음수 모두 테스트
        double v1 = Math.ceil(5.3); //올림 기능. 가까운 큰 정수
        double v2 = Math.floor(5.3); //내림 기능. 가까운 작은 정수
        System.out.println("v1=" + v1);
        System.out.println("v2=" + v2);

        long v3 = Math.max(3, 7); // 두 수중 큰값
        long v4 = Math.min(3, 7); // 두 수중 작은값
        System.out.println("v3=" + v3);
        System.out.println("v4=" + v4);

        //소수 이하 두 자리 얻기.
        double value = 12.3456;
        double temp1 = value * 100; // 1234.56
        long temp2 = Math.round(temp1); //1235
        double v5 = temp2 / 100.0;
        System.out.println("v5=" + v5);

    }

}

package ch12.sec07;


import java.util.Arrays;

/*
 * 랜덤기능
  - Math.random() 메소드
  - Random 클래스 : 난수를 생성하는 클래스
  난수 : 정의한 일정범위에서 무작위로 추출한 수를 말함. 다음에 나오는 값을 확인할 수 없어야 한다.

  new Random() : 매개변수 없음. 현재시간을 시드값으로 사용하여, 다른 난수값 발생.
  new Random(3) : 매개변수 있음. 동일한 난수값 발생.

  아래 예제 사용시
  당첨번호에서 시드값을 5 -> 3 으로 변경해보고. Arrays.sort(winningNumber); 주석처리하여, 실행해본다.
  Arrays.equals(selectNumber, winningNumber) 두 배열을 정렬을 해야한다. 같은 요소끼리 비교하여 일치여부를 체크한다.
 */

import java.util.Random;

public class RandomExample {

    public static void main(String[] args) {
        //선택번호
        int[] selectNumber = new int[6];
        Random random = new Random(3); //시드값 사용시 동일한 난수값 발생
        System.out.print("선택번호: ");
        for(int i=0; i<6; i++) {
            selectNumber[i] = random.nextInt(45) + 1; // 0 ~ 45
            System.out.print(selectNumber[i] + " ");
        }
        System.out.println();

        //당첨번호
        int[] winningNumber = new int[6];
        random = new Random(5); //시드값 사용시 동일한 난수값 발생
        System.out.print("당첨번호: ");
        for(int i=0; i<6; i++) {
            winningNumber[i] = random.nextInt(45) + 1;
            System.out.print(winningNumber[i] + " ");
        }
        System.out.println();

        //당첨여부
        Arrays.sort(selectNumber); //오름차순.  15 21 16 17 34 28 -> 15 16 17 21 28 34
        Arrays.sort(winningNumber); //주석. 오름차순.  18 38 45 15 22 36 -> 15 18 22 36 38 45
        //equals()메소드 사용전에 배열값을 정렬해야 한다. 동일 요소끼리 값을 비교한다.
        boolean result = Arrays.equals(selectNumber, winningNumber);
        System.out.print("당첨여부: ");
        if(result) {
            System.out.println("1등에 당첨되셨습니다.");
        }else {
            System.out.println("당첨되지 않았습니다.");
        }

    }

}