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

1 Answer

0 votes
import scala.util.Random

object RandomExcluding {
  def randomExcluding(N: Int, excluded: Seq[Int]): Int = {
    if (excluded.size > N + 1) return -1

    val rng = new Random()

    def loop(): Int = {
      val num = rng.nextInt(N + 1)
      if (excluded.contains(num)) loop() else num
    }

    loop()
  }

  def main(args: Array[String]): Unit = {
    val excluded = Seq(2, 5, 7)
    val N = 14
    
    println(randomExcluding(N, excluded))
  }
}



/*
run:

8

*/

 



answered 17 hours ago by avibootz

Related questions

...