본문 바로가기

Kotlin

랜덤 수 추출 알고리즘

 

 

Random함수의 파라미터 seed값

 

랜덤수를 생성하는 함수 nextInt()를 제공하는 Random클래스 객체를 생성할때 seed값이라고 파라미터로 전달할 수 있다. 그리고 그 seed값을 기준으로 랜덤수를 추출하는 알고리즘을 돌리는데 아무것도 넣어주지 않으면 랜덤한 수를 뽑기에 가장 좋은 밀리세컨드값이 디폴트로 들어간다.

 

 

List를 사용하는 경우1 : list에 랜덤수를 넣는 방식

 

fun main() {

    val random = Random()
    val list = mutableListOf<Int>()
    
    while(list.size < 6){
    	var ranum = random.nextInt(45)
        if(list.contains(ranum)){
        	continue
        }
        list.add(ranum)
    }
    
    println(list)
}

 

 

 

Set을 사용 : 어차피 Set에는 중복되는 요소가 안들어가니 중복 제거 로직 단축

 

fun main() {

    val random = Random()
    val numSet = mutableSetOf<Int>()
    
    while(numSet.size < 6){
        var ranum  = random.nextInt(45)
        numSet.add(ranum)
    }
    
    println(numSet)
}

 

 

 

List를 사용하는 경우2 : 범위의 모든 수를 list에 넣고 섞은다음에 앞에 6개만 뽑기

 

fun main() {
	
    val random = Random()
    val list = mutableListOf<Int>().apply{
    	for(i in 1..45){ // 객체 초기화 함수 apply
        	this.add(i)
        }
    }
	
    list.shuffle() //섞기
    
    println(list.subList(0, 6))
}

'Kotlin' 카테고리의 다른 글

컬렉션2 ) 코틀린 컬렉션의 종류소개(List, Set, Map)  (0) 2021.08.28
컬렉션1 ) 컬렉션 타입과 상속관계  (0) 2021.08.26
Scope Function  (0) 2021.08.21
Kotlin vs Java  (0) 2021.08.21
데이터 타입  (0) 2021.08.19