math

2022-11-23

伪随机数生成

math/rand 实现

package main
import (
"fmt"
"time"
"math/rand"
)
func main() {
// 用 Unix时间生成纳秒时间戳
// 高并发情况下,可能会生成同样的时间戳
tineNano := time.Now().UnixNano()
// 使用时间戳生成 seed
rand.Seed(tineNano)
// 生成随机数
fmt.Println(rand.Intn(100))
}

真随机数生成

crypto/rand 实现

package main
import (
"fmt"
"crypto/rand"
)
func main() {
randomNum := rand.Int(rand.Reader, big.NewInt(100))
fmt.Println(randomNum)
}