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.