[ java ] Random, Math.Random

2024. 12. 5. 16:40·JAVA

📌 Math.radom()

❓최상위 클래스인 Object 클래스 안에 있으므로 Import 시켜주지 않아도 사용이 가능하다.


  • 0.0 이상 1.0 미만의 double형 난수를 생성한다.
  • 시드(seed) 값을 직접 설정할 수 없다.
    • 시드 값이란 생성 초기 값으로, 생성 시작점을 말한다.
    • Math.Random() 시드 값은 현재 시간을 사용한다.
  • double형이 return 되기 때문에, 정수 사용을 위해서는 원하는 정수 크기 만큼 곱셈을 해주어야 한다.
1. (int)(Math.random()*10) //0~9사이 정수
2. (int)(Math.random()*10000)%10 //0~9사이 정수
//1번 사용을 더 권장 

❗ (int) 캐스팅은 소수점을 반올림하지 않고 버린다.

 

 

📌 Random()

❓ java.util.Random 클래스에서 제공한다. import를 해야 사용이 가능하다.


  • 시드(seed) 값을 직접 설정할 수 있다.
  • 정수, 소수, 논리값 등의 랜덤값을 설정할 수 있다.
  • startindex를 설정하지 않으면 0 ~ bound-1 사이의 정수를 생성한다.
  • startindex ~ endindex-1 사이의 정수를 생성한다.
    • 설정한 값 포함하지 않음 (= bound 포함하지 않음)
random.nextInt(10); //0~9 사이의 정수
random.nextInt(1, 10); //1 ~ 9 사이의 정수 

 

 

Random() 메서드 설명

nextInt() 0 ~ bound-1 사이 정수  
nextDouble() 0.0 ~ 1.0 미만 정수 nextDouble(1,50)
// 1.0 이상 50.0 미만
nextBoolean() true 또는 false  

 

 

 

❓ startIndex를 지정하지 않을때 왜 0으로 시작할까 ? (Ex. nextInt(10) )


  • 반열림 범위가 더 실용적이기 때문 !
    • 계산이 편리하다
    • max값을 포함하지 않아 오류를 방지할 수 있다.
    • 배열이나 리스트의 인덱스가 0부터 시작하기 때문에 자연스럽게 0부터 시작 하도록 설계 됐다는 말도 있다.
  • 반열림 범위
    • 반열림 범위는 min(시작값)은 포함되지만 max(종료값)는 포함되지 않는다.
    • max - min 으로만 계산 가능 (계산 편리)
    • [1 ,10 ) → 10 -1 = 9
  • 닫힌 범위
    • 닫힌 범위는 min(시작값), max(종료값)를 둘다 포함하는 것이다.
    • max - min +1 로 계산해야 한다.
    • [1, 10] → 10 -1 +1 = 10

'JAVA' 카테고리의 다른 글

[ java ] 메서드의 매개변수로 Object? (Object - toString())  (0) 2024.12.10
[ java ] 객체지향 프로그래밍(클래스, 생성자, 메서드, 필드)  (1) 2024.12.05
[ java ] 배열 (복사, 비교) , 2차원배열 개념  (0) 2024.12.04
[ java ] String 클래스(문자열 분리, 비교)  (0) 2024.12.04
[ java ] Comparator, Comparable 차이  (0) 2024.12.03
'JAVA' 카테고리의 다른 글
  • [ java ] 메서드의 매개변수로 Object? (Object - toString())
  • [ java ] 객체지향 프로그래밍(클래스, 생성자, 메서드, 필드)
  • [ java ] 배열 (복사, 비교) , 2차원배열 개념
  • [ java ] String 클래스(문자열 분리, 비교)
Adose
Adose
  • Adose
    도즈의 개발 블로그
    Adose
  • 전체
    오늘
    어제
    • 분류 전체보기 (218)
      • JAVA (22)
      • 스프링 | 스프링 부트 (33)
        • 스프링 시큐리티 (1)
        • 채팅 (1)
      • 스프링 프로젝트 (5)
        • JDBC - 은행앱 구현 (1)
        • Spring Boot - 독서 블로그 프로젝트 (3)
        • 개인 프로젝트 - CoreBrief (1)
      • 가상화 기술 (22)
      • Git (1)
      • 코딩테스트 (38)
        • 프로그래머스 입문 (68)
      • AWS (1)
      • 데이터베이스 (0)
      • CS 공부 (6)
      • 알고리즘, 자료구조 (5)
      • 우테코 프리코스 (7)
      • 트러블 슈팅 (6)
      • 프론트 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 글쓰기
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    멋쟁이사자처럼백엔드
    test
    스프링부트
    자바
    Java
    프로그래머스
    프론트
    LV1
    GIT
    Spring
    멋쟁이사자처럼
    스프링
    springdatajdbc
    LV2
    LV0
    jdbc
    코딩테스트
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
Adose
[ java ] Random, Math.Random
상단으로

티스토리툴바