Math 클래스
자바의 Math 클래스는 수학적 계산을 위한 다양한 메서드를 제공하는 유틸리티 클래스다. 이 클래스는 객체를 생성할 필요 없이 정적 메서드를 통해 사용된다. 주요 기능과 메서드는 다음과 같다.
기본적인 수학 함수
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 중 작은 값을 반환한다.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 클래스의 주요 기능과 사용법은 다음과 같다.
생성자
Random(): 현재 시간을 기반으로 난수를 생성하는 기본 생성자다.Random(long seed): 특정 시드를 사용하여 난수를 생성한다. 같은 시드를 사용하면 항상 같은 난수 시퀀스를 생성한다.난수 생성 메서드
nextInt(): 임의의 정수를 반환한다.nextInt(int bound): 0(포함)과 지정된 bound(제외) 사이의 임의의 정수를 반환한다.nextDouble(): 0.0 이상 1.0 미만의 임의의 실수를 반환한다.nextBoolean(): 임의의 boolean 값을 반환한다.nextFloat(): 0.0f 이상 1.0f 미만의 임의의 실수를 반환한다.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());
}
}
시드를 사용하면 같은 시퀀스의 난수를 재현할 수 있다.
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 클래스를 사용하면 다양한 유형의 난수를 쉽게 생성할 수 있다.