Comment puis-je obtenir un nombre aléatoire entre deux nombres, par exemple 20 à 30?
J'ai essayé:
val r = new scala.util.Random
r.nextInt(30)
Cela autorise uniquement la valeur de limite supérieure, mais les valeurs commencent toujours par 0. Existe-t-il un moyen de définir la valeur de limite inférieure (à 20 dans l'exemple)?
Merci!
Vous pouvez utiliser ci-dessous. Le début et la fin seront inclusifs.
val start = 20
val end = 30
val rnd = new scala.util.Random
start + rnd.nextInt( (end - start) + 1 )
Dans ton cas
val r = new scala.util.Random
val r1 = 20 + r.nextInt(( 30 - 20) + 1)
Sûr. Il suffit de faire
20 + r. nextInt(10)
Ajustez également la valeur math.random
comprise entre 0
et 1
en fonction de l'intervalle d'intérêt, puis convertissez la variable Double
dans ce cas en Int
, par ex.
(math.random * (30-20) + 20).toInt
Démarrer Scala 2.13
, scala.util.Random
fournit:
def between(minInclusive: Int, maxExclusive: Int): Int
qui, utilisé comme suit, génère une Int
entre 20 (inclus) et 30 (exclu):
import scala.util.Random
Random.between(20, 30) // in [20, 30[
Vous pouvez utiliser Java.util.concurrent.ThreadLocalRandom en tant qu'option. C'est préférable dans les environnements multithread.
val random: ThreadLocalRandom = ThreadLocalRandom.current()
val r = random.nextLong(20, 30 + 1) // returns value between 20 and 30 inclusively