코틀린에서 무작위 숫자 생성 방법을 소개합니다.
Math.random()
Math.random()
는 0 <= n < 1
범위의 숫자(Double)를 무작위로 생성합니다.
fun main(args: Array<String>){
println(Math.random()) // 0 <= n < 1
println(Math.random())
println(Math.random())
}
Output:
0.8510430769472556
0.30969568684879034
0.44610616095278166
Range.random()
어떤 숫자 범위가 정의된 Range 객체의 random()
메소드를 호출하면 그 범위의 무작위 숫자가 리턴됩니다.
fun main(args: Array<String>){
val range = (1..15) // 1 <= n <= 15
println(range.random())
println(range.random())
val random = (1..20).random() // 1 <= n <= 20
println(random)
}
Output:
4
13
7
ThreadLocalRandom
ThreadLocalRandom을 이용하여, 지정된 범위의 무작위 숫자 Int, Double, Long을 생성할 수 있습니다.
import java.util.concurrent.ThreadLocalRandom
fun main(args: Array<String>){
val randomDouble = ThreadLocalRandom.current().nextDouble(1.0, 10.0)
val randomInteger = ThreadLocalRandom.current().nextInt(1, 10)
val randomLong = ThreadLocalRandom.current().nextLong(1, 10)
println(randomDouble) // 1 <= n < 10.0
println(randomInteger) // 1 <= n < 10
println(randomLong) // 1 <= n < 10
}
Output:
1.7703291471753246
6
8
SecureRandom
위에서 소개한 방법들은 정해진 패턴으로 랜덤 숫자를 생성합니다. 그렇기 때문에 패턴을 찾아 생성되는 숫자를 예측할 수 있습니다.
SecureRandom은 예측이 불가능한 랜덤 숫자를 생성하여 Security 측면에서 좋습니다.
import java.security.SecureRandom
fun main(args: Array<String>){
val secureRandom = SecureRandom()
println(secureRandom.nextInt(100)) // 0 <= n < 100
println(secureRandom.nextDouble())
}
Output:
import java.security.SecureRandom
fun main(args: Array<String>){
val secureRandom = SecureRandom()
println(secureRandom.nextInt(100)) // 0 <= n < 100
println(secureRandom.nextDouble())
}
Loading script...
Related Posts
- Kotlin - 배열에서 최소 값, 최대 값 찾기
- Kotlin - 2차원 배열 선언, 초기화 방법
- Kotlin - 배열 선언, 초기화 방법
- Kotlin - 리스트, 배열 길이 가져오기
- Kotlin - 리스트에서 최대, 최소 값 찾기
- Kotlin - for 반복문, 배열/리스트 순회
- Kotlin - Timer, 주기적으로 함수 실행
- Kotlin - sleep, 쓰레드 몇 초 지연
- Kotlin - Thread 생성 및 실행
- Kotlin에서 정규표현식 사용하기
- Kotlin - 문자열 길이 계산
- Kotlin - 문자열 비교 방법(equals, ==, compareTo)
- Kotlin - 2개의 배열 하나로 합치기
- Kotlin - 2개의 List 하나로 합치기
- Kotlin - 디렉토리의 모든 파일 리스트 출력
- Kotlin - 리스트 정렬 방법 (sort, sortBy, sortWith)
- Kotlin - 문자열 뒤집기 (Reverse String)
- Kotlin - 랜덤 숫자 생성 (Random, SecureRandom)
- Kotlin - Range, 숫자 범위 표현
- Kotlin - 음수를 양수로 변환, math.abs()
- Kotlin - List를 Set로 변환
- Kotlin - Set를 List로 변환
- Kotlin - 문자열에서 숫자(int)만 추출하는 방법
- Kotlin - Map을 List로 변환하는 방법
- Kotlin - File, Directory가 존재하는지 확인
- Kotlin - List를 Map으로 변환
- Kotlin - List의 중복 요소 제거
- Kotlin - List를 Array로 변환
- Kotlin - 엘비스 연산자 (Elvis Operation)
- Kotlin - Array를 List로 변환
- Kotlin - String을 Float으로 변환
- Kotlin - String을 Double으로 변환
- Kotlin - String을 Int로 변환
- Kotlin - String을 Long으로 변환
- Kotlin - String Null 또는 Empty 체크