การสร้างตัวเลขสุ่ม

Kotlin:
การสร้างตัวเลขสุ่ม

วิธีการ:

Kotlin มีวิธีที่ตรงไปตรงมาในการสร้างตัวเลขสุ่มผ่านไลบรารีมาตรฐานของมัน นี่คือวิธีที่คุณสามารถสร้างค่าสุ่มประเภทต่างๆ:

การสร้างตัวเลขเต็มสุ่ม

ในการสร้างตัวเลขเต็มสุ่มภายในช่วงที่กำหนด:

import kotlin.random.Random

fun main() {
    val randomNumber = Random.nextInt(1, 100) // สร้างตัวเลขสุ่มระหว่าง 1 ถึง 99
    println(randomNumber)
}

การสร้างตัวเลขทศนิยมสองตำแหน่งสุ่ม

ทำในลักษณะเดียวกันสำหรับการสร้างตัวเลขทศนิยมสองตำแหน่งสุ่ม:

import kotlin.random.Random

fun main() {
    val randomDouble = Random.nextDouble(1.0, 10.0) // สร้างตัวเลขทศนิยมสองตำแหน่งสุ่มระหว่าง 1.0 ถึง 10.0
    println(randomDouble)
}

การสร้างค่าบูลีนสุ่ม

สำหรับการสร้างค่าบูลีนสุ่ม:

import kotlin.random.Random

fun main() {
    val randomBoolean = Random.nextBoolean() // สร้างค่า true หรือ false อย่างสุ่ม
    println(randomBoolean)
}

การใช้ Seed เพื่อผลลัพธ์ที่สามารถทำซ้ำได้

ในกรณีที่คุณต้องการลำดับของตัวเลขสุ่มที่สามารถทำซ้ำได้ (เช่น, ในการทดสอบ), คุณสามารถใช้ seed ในการสร้างตัวเลขสุ่ม:

import kotlin.random.Random

fun main() {
    val seed = 12345L
    val random = Random(seed)
    val randomNumber = random.nextInt(1, 100)
    println(randomNumber)
}

การศึกษาลึก

การเข้าถึงการสร้างตัวเลขสุ่มในไลบรารีมาตรฐานของ Kotlin ใช้ประโยชน์จาก java.util.Random ภายใต้ฝา, ทำให้มีทั้งความง่ายในการใช้งานและประสิทธิภาพ อย่างไรก็ดี, สำคัญที่จะต้องทราบว่า วิธีเหล่านี้สร้างตัวเลขปลอมสุ่ม, ซึ่งหมายความว่าตัวเลขดูเหมือนจะเป็นสุ่ม แต่ถูกสร้างขึ้นโดยกระบวนการที่กำหนดไว้

สำหรับการใช้งานส่วนใหญ่, ความสุ่มที่ Kotlin Random คลาสให้มานั้นเพียงพอแล้ว. อย่างไรก็ตาม, สำหรับการใช้งานที่มีความหมายต่อความปลอดภัยสูง เช่น การเข้ารหัสลับ, ที่คุณภาพของความสุ่มเป็นสิ่งสำคัญอย่างยิ่ง, ควรพิจารณาใช้ java.security.SecureRandom แทน SecureRandom ถูกออกแบบมาเฉพาะสำหรับการปฏิบัติการเข้ารหัสลับ ให้ความสุ่มที่มีคุณภาพสูงกว่า แม้จะมีความเป็นไปได้ที่จะมี trade-off ด้านประสิทธิภาพ

Kotlin ไม่ได้ประดิษฐ์วงล้อใหม่ แต่เสนอ API ที่เป็นมิตรกับ Kotlin มากกว่าเหนือกลไกการสร้างตัวเลขสุ่มของ Java, ทำให้การใช้งานภายในโปรเจกต์ Kotlin มีไอดีโอแมติกและกระชับมากขึ้น เช่นเคย, เมื่อต้องจัดการกับความสุ่ม, โปรแกรมเมอร์ควรพิจารณากรณีการใช้งานอย่างรอบคอบเพื่อเลือกเครื่องมือที่เหมาะสมที่สุดสำหรับงานนั้น