[TIL 60일차] 자바 복습 정리 16

이건·2024년 8월 18일

Math 클래스

자바의 Math 클래스는 수학적 계산을 위한 다양한 메서드를 제공하는 유틸리티 클래스다. 이 클래스는 객체를 생성할 필요 없이 정적 메서드를 통해 사용된다. 주요 기능과 메서드는 다음과 같다.

1. 주요 메서드

  • 기본적인 수학 함수

    • Math.abs(double a): 절대값을 반환한다.
    • Math.sqrt(double a): 제곱근을 반환한다.
    • Math.pow(double a, double b): a의 b 제곱을 반환한다.
  • 삼각 함수

    • Math.sin(double a): a의 사인 값을 반환한다.
    • Math.cos(double a): a의 코사인 값을 반환한다.
    • Math.tan(double a): a의 탄젠트 값을 반환한다.
  • 로그 및 지수

    • Math.log(double a): 자연 로그(밑 e)를 반환한다.
    • Math.log10(double a): 상용 로그(밑 10)를 반환한다.
    • Math.exp(double a): e의 a 제곱을 반환한다.
  • 랜덤 값 생성

    • Math.random(): 0.0 이상 1.0 미만의 난수를 반환한다.
  • 최댓값 및 최솟값

    • Math.max(int a, int b): a와 b 중 큰 값을 반환한다.
    • Math.min(int a, int b): a와 b 중 작은 값을 반환한다.

2. 예제 코드

Math 클래스를 사용하는 간단한 예제

public class MathExample {
    public static void main(String[] args) {
        double a = -9.5;
        double b = 3.0;

        // 절대값
        System.out.println("절대값: " + Math.abs(a));

        // 제곱근
        System.out.println("제곱근: " + Math.sqrt(16));

        // 제곱
        System.out.println("3의 2제곱: " + Math.pow(3, 2));

        // 삼각 함수
        double angle = Math.PI / 4; // 45도
        System.out.println("sin(45도): " + Math.sin(angle));
        System.out.println("cos(45도): " + Math.cos(angle));

        // 랜덤 값
        System.out.println("랜덤 값: " + Math.random());

        // 최댓값 및 최솟값
        System.out.println("최댓값: " + Math.max(10, 20));
        System.out.println("최솟값: " + Math.min(10, 20));
    }
}

이와 같이 Math 클래스를 활용하여 다양한 수학적 계산을 손쉽게 수행할 수 있다.

Random 클래스

자바의 Random 클래스는 난수 생성기를 제공하는 클래스로, 다양한 타입의 난수를 생성할 수 있다. java.util 패키지에 포함되어 있으며, 주로 게임, 시뮬레이션, 샘플링 등에서 사용된다. Random 클래스의 주요 기능과 사용법은 다음과 같다.

1. 주요 메서드

  • 생성자

    • Random(): 현재 시간을 기반으로 난수를 생성하는 기본 생성자다.
    • Random(long seed): 특정 시드를 사용하여 난수를 생성한다. 같은 시드를 사용하면 항상 같은 난수 시퀀스를 생성한다.
  • 난수 생성 메서드

    • nextInt(): 임의의 정수를 반환한다.
    • nextInt(int bound): 0(포함)과 지정된 bound(제외) 사이의 임의의 정수를 반환한다.
    • nextDouble(): 0.0 이상 1.0 미만의 임의의 실수를 반환한다.
    • nextBoolean(): 임의의 boolean 값을 반환한다.
    • nextFloat(): 0.0f 이상 1.0f 미만의 임의의 실수를 반환한다.

2. 예제 코드

Random 클래스를 사용하는 간단한 예제

import java.util.Random;

public class RandomExample {
    public static void main(String[] args) {
        Random random = new Random();

        // 기본 정수 난수 생성
        System.out.println("임의의 정수: " + random.nextInt());

        // 0에서 10 사이의 임의의 정수 생성
        System.out.println("0에서 10 사이의 임의의 정수: " + random.nextInt(10));

        // 임의의 실수 생성
        System.out.println("임의의 실수: " + random.nextDouble());

        // 임의의 boolean 값 생성
        System.out.println("임의의 boolean 값: " + random.nextBoolean());

        // 임의의 float 값 생성
        System.out.println("임의의 float 값: " + random.nextFloat());
    }
}

3. 시드를 사용한 예제

시드를 사용하면 같은 시퀀스의 난수를 재현할 수 있다.

import java.util.Random;

public class SeededRandomExample {
    public static void main(String[] args) {
        Random random1 = new Random(12345); // 고정된 시드
        Random random2 = new Random(12345); // 같은 시드

        System.out.println("랜덤1: " + random1.nextInt());
        System.out.println("랜덤2: " + random2.nextInt()); // 같은 시드로 생성된 난수
    }
}

이와 같이 Random 클래스를 사용하면 다양한 유형의 난수를 쉽게 생성할 수 있다.

0개의 댓글