[패캠 안드로이드] Part2 Ch2.2 Random

0
post-thumbnail

Part2 Ch2.2 Random

  • 난수 구하기
import java.util.*

fun main() {
    val random1 = Random(200) 
    //seed값으로 200을 넣은 Rnadom 객체 생성
    val random2 = Random() 
    //seed값 명시하지 않고 Random 객체 생성 -> seed 자동으로 nano-time이 들어가게 된다
    
    //nextInt(bound): 0 ~ (bound - 1)까지의 난수 반환
    println("${random1.nextInt(45)+1}") 
    //random1은 seed값이 200으로 고정
    //-> run할 때 매번 같은 난수가 나온다
    println("${random2.nextInt(45)+1}") 
    //random2는 seed값에 nano-time이 들어감
    //-> run할 때마다 다른 시간이 들어가서 매번 다른 난수를 구할 수 있다
}
  • 여러개의 난수 구하기
import java.util.*
fun main() {
    val random = Random() 

    //출력된 난수 중 중복된 값이 있을 수 있다  
    for(i in 1..6){
        println("${random.nextInt(44)+1}")
    }   
}
  • 여러개의 난수 구하기 - List 이용하여 중복 처리
import java.util.*
fun main() {
    val random = Random() 
    val randomList = mutableListOf<Int>()
    
    while(randomList.size < 6){
        val randomNum = random.nextInt(44) + 1
        if(randomList.contains(randomNum)){
            continue
        }else{
            randomList.add(randomNum)
        }
    }
    println(randomList)
   
}
  • 여러개의 난수 구하기 - Set 이용하여 중복 처리
import java.util.*
fun main() {
    val random = Random() 
    val randomSet = mutableSetOf<Int>() 
    
     while(randomSet.size < 6){
        val randomNum = random.nextInt(44) + 1
      	randomSet.add(randomNum)
    }
    println(randomSet)  
}
  • 여러개의 난수 구하기 - shuffle 함수 이용
import java.util.*

fun main() {
    val random = Random() 
    val randomList = mutableListOf<Int>().apply{
        //randomList 초기화
        for(i in 1..45){
            this.add(i)
        }
        println(this)
    } 
    
  randomList.shuffle()
  println(randomList.subList(0, 6))
}
profile
Be able to be vulnerable, in search of truth

0개의 댓글