개발자 미니민의 개발스터디

[JAVA] 자바 - Math 및 Random 클래스

by mini_min

[JAVA]
자바 - Math 클래스

✔️ Math 클래스란?

수학과 관련된 메소드를 제공하는 클래스!

생성자가 있지만, private 으로 선언되어 외부에서 객체 생성불가!!!!

 

모든 메소드가 static 으로 선언되어 있어서 객체 선언하지 않고 바로 사용 가능하고, 다만, 외부에서는 객체 생성하지 않는다는 것을 지켜야한다.

 

public static void main(String[] args) {
		double a;
		
		System.out.println(Math.PI);
		
		a = Math.sin(30.0 * Math.PI/180);	//각도는 라디안으로
		System.out.println(a);
		
		
		a = Math.sqrt(2.0);
		System.out.println(a);
		
		a = Math.floor(12.77);
		System.out.println(a);//절삭
		
		a = Math.pow(2, 10);
		System.out.println(a);
		
		
		
		a = Math.random(); //< =난수 < 1
				System.out.println(a);
		

	}

 

💡 Math 클래스
sin 메소드에서 각도는 라디안으로 줘야한다.
sqrt() 메소드는 a라는 인자의 제곱근을 구하여 반환한다.
floor() 메소드는 a 인자보다 작거나 가장 가까운 정수 반환!
ex) 10.6 은 11로 반환
pow() 메소드는 a 인자, b인자를 받아서 a의 b승을 구한다.

 

 

 

✔️ Random 클래스란?

여러 형태의 난수를 제공한다! Math 클래스의 메소드인 random() 도 난수를 제공하는 메소드지만, 해당 메소드는 실수만 발생하기 때문에 여러 형태의 난수를 반환하려면 Random 클래스를 사용한다.

 

// 5자리 난수를 반환할 때, Random 클래스 사용

public static String toNumer5()		//가변적인 문자열이라 스트링빌더
	StringBuilder sb = new StringBuilder();
    
    Random rd = new Random();
    int n;
    
    for(int i=0; i<5; i++)
    	n = rd.nextInt(10) // 0~9 사이 난수!
        sb.append(Integer.toString(n));
        //난수인 n을 문자열로 변환해서 스트링빌더 객체에 추가
        
        return sb.toString();

 

💡 객체.nextInt(n);
= 랜덤 클래스에서 0에서 n 사이의 난수를 발생시킬 때 사용

 

 

 

✔️ 만약, 서로 다른 3자리 난수 뽑고 싶을 때는?

먼저,  랜덤 함수로 1~9 사이 랜덤 클래스 사용한다.

가변적인 스트링이니까, 스트링 빌더 객체 생성 및 사용한다.

 

StirngBuilder sb = new StringBuilder();

Random rd = new Random();
Stirng n;

 

이후, 3번동안 난수를 뽑을 for 문을 생성한다.

1~9까지 난수를 랜덤으로 추출하는 것이기 때문에 0~9 에서 +1을 해서 1~9로 반환한다.

for(int i=0; i<3; i++)
	n = Integer.toString(rd.nextInt(9)+1);

 

이제 중복되는 난수 값이 출력됐을 때, 다시 이전 순서로 돌아가도록 코드를 짜야한다.

💡 sb 스트링빌더 값에 없다면, -1이 뜨고, 있다면 양수가 나올 것이기 때문에 있으면 순서를 돌려놓는다.

if (sb.indexOf(n)>=0)
	i--;		//이전 순서로 돌려놓기
    continue;
    
    //문제없을시, 난수 n값 추가
    sb.append(n);

 

 

 

 

블로그의 정보

개발자 미니민의 개발로그

mini_min

활동하기