Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk menguji ketepatan penjana nombor rawak di Golang?
Langkah-langkah untuk menguji ketepatan penjana nombor rawak dalam Go termasuk menjana sejumlah besar nombor rawak dan mengira bilangan kejadian dalam setiap julat untuk memastikan pengagihan sekata. Mengira bilangan kejadian dalam setiap julat untuk min tertentu dan sisihan piawai untuk memastikan taburan normal.
Menguji ketepatan penjana nombor rawak di Golang adalah penting kerana ia memastikan nombor rawak dalam aplikasi anda boleh diramal dan tidak boleh ditaksir.
Untuk menguji penjana nombor rawak, anda perlu menciptanya dan membuat seketika. Dalam kes ini, kami akan menggunakan jenis math/rand
包中的 Rand
:
import ( "math/rand" "time" ) // 随机数生成器 rng := rand.New(rand.NewSource(time.Now().UnixNano()))
Nombor rawak yang diedarkan secara seragam harus muncul secara rawak dalam julat yang ditentukan. Untuk menguji ini:
// 均匀分布测试 桶数 := 10 范围 := 0.0 for i := 0; i < 桶数; i++ { 范围 += 1.0 / float64(桶数) } 桶计数 := make([]int, 桶数) for i := 0; i < 1000000; i++ { n := rng.Float64() for j := 0; j < 桶数; j++ { if n < 范围 { 桶计数[j]++ break } else { 范围 += 1.0 / float64(桶数) } } } // 检查桶数是否大致均匀
nombor rawak teragih biasa hendaklah dikelompokkan di sekitar min dan sisihan piawai yang ditentukan. Untuk menguji ini:
// 正态分布测试 平均值 := 0.0 标准差 := 1.0 桶数 := 10 范围 := 默认计算桶范围 桶计数 := make([]int, 桶数) for i := 0; i < 1000000; i++ { n := rng.NormFloat64(平均值, 标准差) for j := 0; j < 桶数; j++ { if n < 范围 { 桶计数[j]++ break } else { 范围 += 默认计算桶范围 } } } // 检查桶数是否与正态分布相符
Andainya anda mempunyai fungsi yang menjana kata laluan:
func 生成密码(长度 int) string { 密码 := "" for i := 0; i < 长度; i++ { 密码 += 字符(rng.Intn(26) + 'a') } return 密码 }
Untuk memastikan kata laluan selamat, anda menguji:
Dengan menguji ketepatan penjana nombor rawak anda, anda boleh memastikan bahawa aplikasi anda bergantung pada seks rawak yang selamat dan boleh dipercayai.
Atas ialah kandungan terperinci Bagaimana untuk menguji ketepatan penjana nombor rawak di Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!