본문 바로가기
Backend/Java

[Java]Math클래스를 이용해 난수 생성하기 - random()

by sukii 2023. 12. 4.
반응형

Math 클래스 : 수학 관련 기능을 제공하는 클래스
🔘Math.random() : 0.0 보다 크거나 같고 1.0보다 작은 실수 난수값을 생성하여 변환하는 메소드
범위: 0.0 <= 난수값 < 1.0

package basic;

//컴퓨터로부터 난수값을 제공받아 출력하는 프로그램 작성
// => 난수값 : 컴퓨터로부터 불규칙적으로 제공되는 숫자값
public class MathRandomApp {
	public static void main(String[] args) {
		for(int i=1;i<=5;i++) {
			System.out.println(i+"번째 실수 난수값 ="+Math.random());
		}
		System.out.println("===============================================================");
		for(int i=1;i<=5;i++) {
			//(int)(Math.random()*100) >> 0 <= 난수값 <100 = 0~99
			System.out.println(i+"번째 실수 난수값 ="+(int)(Math.random()*100));
		}
		System.out.println("===============================================================");
		for(int i=1;i<=5;i++) {
			//(int)(Math.random()*45+1) >> 1 <= 난수값 <46 = 0~45
			System.out.println(i+"번째 실수 난수값 ="+((int)(Math.random()*45)+1));
		}
		System.out.println("===============================================================");
	}
}

 

위 예제 중 세번째 0~45 범위의 난수값을 받을 때, 45를 곱하고 나서 1을 더해주는 이유는

random()메소드를 사용했을 때 범위가 0.0 <= 난수값 < 1.0 이기 때문이다.

 

1을 더해주지 않으면 범위가 0 <= 난수값 < 45이 되므로, 45까지 범위에 포함시키고 싶다면 1을 더해서

0<=난수값<46이 되도록 만들어줘야 한다.

반응형