How to generate a random integer from a range [0, N] that is not in a unique integer list with Kotlin

1 Answer

0 votes
import kotlin.random.Random

fun randomExcluding(N: Int, excluded: Set<Int>): Int {
    // If all numbers are excluded, return -1
    if (excluded.size > N + 1) {
        return -1
    }

    var num: Int
    do {
        num = Random.nextInt(0, N + 1) // generates [0, N]
    } while (num in excluded)

    return num
}

fun main() {
    val excluded = setOf(2, 5, 7)
    val N = 14

    val result = randomExcluding(N, excluded)
    println(result)
}



/*
run:

13

*/

 



answered 12 hours ago by avibootz

Related questions

...