자바 - API ( Random )

빵제이·2023년 8월 2일
0

자바

목록 보기
34/37

[ Math 클래스의 random 메소드 ]

  • java.lang.Math 클래스의 random 메소드
    1. 0 이상 1 미만의 난수를 반환
    1. 클래스 메소드이므로 Math 클래스를 이용해서 호출함

[ ex01 ]

public static void ex01() {
   double randomNumber = Math.random();  // 0.0 <= 난수 < 1.0
   
// 확률 처리하기
   if(randomNumber < 0.1) {
     System.out.println("대박");
   } else {
     System.out.println("꽝");
   }
   
 }

[ ex02 ]

public static void ex02() {
   
   /*
    *  정수 난수로 바꿔서 사용하기
    *  
    *  1단계 : Math.random()                   0.0 <= n < 1.0
    *  2단계 : Math.random() * 3               0.0 <= n < 3.0
    *  3단계 : (int)(Math.random() * 3)        0 <= n < 3
    *  4단계 : (int)(Math.random() * 3) + 1    1 <= n < 4
    *  --------------------------------------------------------
    *          (int)(Math.random() * 개수) + 시작값 
    *          (int)(Math.random() * 개수 + 시작값)  - 위 아래 괄호 상관없음.  
    */
   
   int randomNumber = (int)(Math.random() * 3) + 1;  // 1부터 3개의 난수 발생
   System.out.println(randomNumber);
   
 }

[ 메인 메소드 ]

public static void main(String[] args) {
  ex02();
}

[ Random ]

  • java.util.Random 클래스
    1. 전달된 시드(seed)에 따라서 서로 다른 난수를 발생한다.
    1. 전달된 시드(seed)가 없는 경우에는 현재 시간을 시드(seed)로 사용한다.
    1. 동일한 시드(seed)를 사용하면 동일한 난수가 발생한다.
public static void main(String[] args) {
    // Random 객체 선언 & 생성
    Random random = new Random();
    
 // 실수
    double randomNumber1 = random.nextDouble(); // 0.0 <= n < 1.0
    
 // 정수
    int randomNumber2 = random.nextInt(); // Integer.MIN_VALUE <= n <= Integer.MAX_VALUE
    int randomNumber3 = random.nextInt(5);  // 0 ~ 4 (5개 난수)

    System.out.println(randomNumber1);
    System.out.println(randomNumber2);
    System.out.println(randomNumber3);
  }

[ SecureRandom ]

  • ex) 회원가입시 인증번호
  • java.security.SecureRandom 클래스
    1. 보안 처리된 난수를 발생한다.
    1. Random 클래스와 같은 사용법을 가진다.
 public static void main(String[] args) {
 
 // SecureRandom 객체 선언 & 생성
    SecureRandom secureRandom = new SecureRandom();
    
 // 실수
    double randomNumber1 = secureRandom.nextDouble();
    
 // 정수
    int randomNumber2 = secureRandom.nextInt();
    int randomNumber3 = secureRandom.nextInt(5);
    
    System.out.println(randomNumber1);
    System.out.println(randomNumber2);
    System.out.println(randomNumber3);   
  }
}

[ UUID ]

  • java.util.UUID
    1. 전역 고유 식별자(Universal Unique IDdentifier)라는 뜻이다.
    1. 32개의 16진수를 랜덤하게 생성한다. (하이픈(-) 4개 별도 포함)
    1. UUID를 이용해서 생성한 값은 중복이 없는 것으로 처리한다.
    1. 생성된 UUID값은 String으로 바꿔서 사용한다.
public static void main(String[] args) {
    
    UUID uuid = UUID.randomUUID();
    String str = uuid.toString();
    
    System.out.println(str);
  }
}
profile
개인 아카이브

0개의 댓글