본문 바로가기
자바

자바 Random() 함수와 Random 클래스 [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 30.

Random() 함수와 Random  클래스의 비교

사용 예제 )코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 코드 아래 부분에 있습니다.

 

import java.util.Random;

public class Sample {

	public static void main(String[] args) {

		//// Math.random() 과 Random 클래스의 비교
		// 필요한 부분만 복사하셔서 사용 하시면 되겠습니다.

		// Math클래스의 random을 이용
		// 0에서 100 까지의 난수를 발생해서 정수형으로 저장함
		int nNum = (int) (Math.random() * 100) + 1;
		System.out.println("Math.random() 발생한 난수 : " + nNum);
		
		
/////////////////////Random 클래스를 이용///////////////////////////////////
		//생성자를 만들때 7 씨드를 넣지 않으면  현재시간을 씨드로 사용 함
		//Random random = new Random();
		
		Random random = new Random(7);

		//- 2,147,483,648 부터  2,147,483,647 까지 의 난수발생
		int nNum1 = random.nextInt();
		System.out.println("random.nextInt() 발생한 난수 : " + nNum1);
		
		//1 부터 100 사이의 난수발생
		int nNum2 = random.nextInt(100) + 1;
		System.out.println("random.nextInt(100) + 1 발생한 난수 : " + nNum2);
		
		//true  또는  false  의 난수발생
		boolean booTorF = random.nextBoolean();
		System.out.println("random.nextBoolean 발생한 난수 : " + booTorF);
		
		//더블형의 난수발생 1 에서 100 사이 
		double dNum = random.nextDouble()*100 + 1;
		System.out.println("random.nextDouble()*100 + 1 발생한 난수 : " + dNum);
		

		
	}
}
//결과는 :

//Math.random() 발생한 난수 : 86
//random.nextInt() 발생한 난수 : -1156638823
//random.nextInt(100) + 1 발생한 난수 : 65
//random.nextBoolean 발생한 난수 : true
//random.nextDouble()*100 + 1 발생한 난수 : 1.962895673974895

 

첫 번째 Math클래스의 random() 메서드가 Random클래스 보다 사용하기 편하고

조금만 응용 하면 Random클래스의 모든 메서드 기능을 사용할 수가 있습니다.

 

구성은 :

Math 클래스의 random() 사용시

Math.random();	//Math 클래스의 random() 메소드 

Math 클래스의 random() 메서드는 기본적으로 0.0부터 1.0 미만까지의 난수를 발생합니다.

int nNum = (int) (Math.random() * 100) + 1;

이렇게 원하는 범위의 숫자를 곱해주고 1을 더해줘야 그사이(1에서 100까지)의 난수를 얻을 수 있습니다.

 

 

 

Random 클래스 사용 시

1.Random 생성자명1 = new Random();	//현재시간이 씨드로 사용됨
2.Random 생성자명2 = new Random(7);	//7 이 씨드로 사용됨

2개 중에 아무거나 사용하면 됩니다.

 

만들어진 생성자를 이용해서 Random클래스의 메서드를 사용하시면 됩니다.

.nextInt();   - 2,147,483,648 부터  2,147,483,647 까지 의 난수발생   

.nextInt(정수형);	0 부터 정수형-1 까지의 난수 발생

.nextBoolean();		//true  또는  false  발생

.nexDouble();	//더블형의 난수발생 0 부터 1미만 까지의 난수 발생

 

실전에서의 사용빈도는  두 가지 경우다 낮습니다.

2가지 중에 상황에 맞는 것을 잘 선택하시면 되겠습니다.

 

 

 

 

 

 

728x90
반응형

댓글