• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    해결됨

나도코딩님 랜덤짓는법 어디서 배웠죠??

23.01.14 09:34 작성 23.01.14 09:41 수정 조회수 287

0

 랜덤 짓는법 어디서 배웠는지 못찾겠네요 ㅠ

그리고

Math Random 클래스와 Random변수? 가 어떻게 다른건가요

 

답변 2

·

답변을 작성해보세요.

3

안녕하세요?
Random 의 사용법은 패키지 (chap_07._11_Package) 를 공부할 때 배웠습니다. IntelliJ 에서 Ctrl + Shift + F 를 입력하신 뒤에 찾으려는 검색어 (예: Random) 를 입력하시면 어느 곳에서 해당 구문이 사용되었는지 쉽게 확인하실 수 있답니다. 😆

image

Math.random() 과 Random 은 사실 크게 다르지 않습니다. Random 은 java.util 패키지 내에, Math 는 java.lang 패키지 내에 정의되어 있는데요.

System.out.println(new Random().nextDouble()); // java.util.Random
System.out.println(Math.random()); // java.lang.Math

Math.random() 부분을 Ctrl 누른 상태에서 클릭해보시면 다음과 같이 생긴 메소드를 확인할 수 있구요.

// 1. Math.random() 메소드
public static double random() {
    return RandomNumberGeneratorHolder.randomNumberGenerator.nextDouble();
}

randomNumberGenerator 라는 부분을 동일한 방법으로 클릭해보시면 이렇게 정의된 것을 확인할 수 있습니다.

// 2. randomNumberGenerator 객체
static final Random randomNumberGenerator = new Random();

그리고 뒤의 .nextDouble() 부분을 동일하게 클릭해보시면 다음과 같은데요.

// 3. nextDouble() 메소드 (= java.lang.nextDouble)
public double nextDouble() {
    return (((long)(next(26)) << 27) + next(27)) * DOUBLE_UNIT;
}

이 메소드가 구현된 위치를 확인해보면 결국 java.util.Random 클래스라는 것을 알 수 있습니다.

단, Math.random() 은 double 실수값만 랜덤으로 뽑을 수 있는 반면에 Random 을 이용하면 double, float, boolean, int, long 등 다양한 형태의 수를 뽑을 수 있습니다.

감사합니다 😊

0

지나가다 보았지만, 강의 퀄리티만큼 답변도 장난이 아니네요..! 질문한 사람도 아닌데 제가 다 감동 받고 갑니다.. 유튜브 멤버쉽도 했지만 이런 내용을 보니 돈주고 산 보람이 있네요... ㅠ

안녕하세요, InChestry 님!
제 강의를 통해 공부하시는 분들이 하나씩 개념을 익혀나가는 모습을 보면 정말 큰 보람을 느낍니다. 질문글이 올라오면 저도 과거에 많이 겪어봤기에 어떤 부분을 어려워하시는지 충분히 이해도 되구요 ㅎㅎ 유료 강의인 만큼 수강생 분들이 모든 내용을 충분히 이해하고 넘어가실 수 있도록 제가 할 수 있는 선에서 최선을 다하겠습니다.
따뜻한 말씀 진심으로 감사하며, 저도 초심을 잃지 않도록 노력하겠습니다.
감사합니다 😊