Kotlin:
Generera slumptal
Hur man gör:
Kotlin erbjuder ett enkelt sätt att generera slumpmässiga tal genom sitt standardbibliotek. Så här kan du generera olika typer av slumpvärden:
Generera ett slumpmässigt heltal
För att generera ett slumpmässigt heltal inom ett specifikt intervall:
import kotlin.random.Random
fun main() {
val randomNumber = Random.nextInt(1, 100) // Genererar ett slumpmässigt tal mellan 1 och 99
println(randomNumber)
}
Generera ett slumpmässigt Double
På liknande sätt, för att generera ett slumpmässigt double:
import kotlin.random.Random
fun main() {
val randomDouble = Random.nextDouble(1.0, 10.0) // Genererar ett slumpmässigt double mellan 1.0 och 10.0
println(randomDouble)
}
Generera ett slumpmässigt Boolean
För att generera ett slumpmässigt boolean-värde:
import kotlin.random.Random
fun main() {
val randomBoolean = Random.nextBoolean() // Genererar antingen sant eller falskt slumpmässigt
println(randomBoolean)
}
Seeding för reproducerbara resultat
I fall där du behöver reproducerbara sekvenser av slumpmässiga tal (till exempel vid testning), kan du ange ett utsäde för slumpmässighetsgeneratorn:
import kotlin.random.Random
fun main() {
val seed = 12345L
val random = Random(seed)
val randomNumber = random.nextInt(1, 100)
println(randomNumber)
}
Fördjupning
Kotlin standardbibliotekets tillvägagångssätt för att generera slumpmässiga tal utnyttjar Java’s java.util.Random
under huven, vilket garanterar en blandning av användarvänlighet och prestanda. Det är dock viktigt att notera att dessa metoder genererar pseudoslumpmässiga tal, vilket betyder att talen verkar slumpmässiga men genereras med en deterministisk process.
För de flesta applikationer är slumpmässigheten som tillhandahålls av Klassens Random
i Kotlin tillräcklig. Dock, för mer säkerhetskänsliga applikationer, såsom kryptografi, där kvaliteten på slumpmässigheten är av yttersta vikt, bör man överväga att använda java.security.SecureRandom
istället. SecureRandom är specifikt utformad för kryptografiska operationer och erbjuder en högre kvalitet på slumpmässigheten, men kan innebära en potentiell avvägning i prestanda.
Kotlin återuppfinnar inte hjulet utan erbjuder ett Kotlin-vänligt API över Javas mekanismer för slumpmässig talgenerering, vilket gör det mer idiomatiskt och koncist att använda inom Kotlin-projekt. Som alltid, när man hanterar slumpmässighet, bör programmerare noggrant överväga användningsfallet för att välja det mest lämpliga verktyget för jobbet.