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 มีไอดีโอแมติกและกระชับมากขึ้น เช่นเคย, เมื่อต้องจัดการกับความสุ่ม, โปรแกรมเมอร์ควรพิจารณากรณีการใช้งานอย่างรอบคอบเพื่อเลือกเครื่องมือที่เหมาะสมที่สุดสำหรับงานนั้น