Made in 2PARK

[0.08] 기본클래스 - 2. Math, Random 클래스 본문

자바기본

[0.08] 기본클래스 - 2. Math, Random 클래스

2PARK 2013. 12. 9. 22:26

1. Wrapper 클래스

2. BigInteger, BigDecimal 클래스

3. Math 클래스

4. Random 클래스

5. 토크나이저



3. Math클래스

 - static 멤버로만 구성된 Math 클래스

 - 수학관련 기능을 제공함. (인스턴스 생성의 목적으로 정의된 클래스는 아니다)

 

class MathClass

 public static void main(String[] args)
 {
  System.out.println("원주율: " + Math.PI); //원주율 파이 값은 Math클래스에 PI라는 이름의 static멤버로 정의되어 있다.
  System.out.println("2의 제곱근: " + Math.sqrt(2));
  
  System.out.println("파이에 대한 Degree: " + Math.toDegrees(Math.PI));
  System.out.println("2파이에 대한 Degree: " + Math.toDegrees(2.0*Math.PI));  //라디안 값을 육십분법인 디그리 단위로 변환하는 toDegrees메소드 
  
  double radian45=Math.toRadians(45); // toDegrees메소드의 반대 라디안으로의 변환!
  System.out.println("싸인 45: " + Math.sin(radian45));
  System.out.println("코싸인 45: " + Math.cos(radian45));
  System.out.println("탄젠트 45: " + Math.tan(radian45));
  
  System.out.println("로그 25: " + Math.log(25));
  System.out.println("2의 4승: "+ Math.pow(2, 4));
 }
}

4. Random 클래스

 - java.util 패키지로 묶여있다. (import java.util.Random;)

 boolean nextBoolean()

 boolean형 난수 반환

 int nextInt()

 int형 난수 반환

 long nextLong()

 long형 난수 반환

 int nextInt(int n)

 0이상 n미만의 범위내에 있는 int형 난수 반환

 float nextFloat()

 0.0이상 1.0미만의 float형 난수 반환

 double nextDouble()

 0.0이상 1.0미만의 double형 난수 반환

 

 - 컴퓨터가 생성하는 난수는 사실 가짜 난수이다.

 - 같은 seed가 입력되면 같은 유형의 난수가 반환된다.

 - 따라서 진정한 의미의 난수란 사용자가 seed의 변화를 주어야만 의미가 있다.

 - seed 미 입력시 다른 난수가 반환되는 이유는 ?

 import java.util.Random;

class SeedChangeRandom

 public static void main(String[] args)
 {
  Random rand=new Random(12);
  rand.setSeed(System.currentTimeMillis()); //System.currentTimeMillis()가 의미하는 것은 컴퓨터의 현재시간을 기준으로 밀리 초(1/1000)단위로 계산하여 반환하는 메소드. 따라서 매번 다른 seed가 제공되는 것이다.
  
  for(int i=0; i<100; i++)
   System.out.println(rand.nextInt(1000));
 }
}

 

Comments