伪随机数

伪随机的意思就是,不管执行几次,在什么平台下执行,结果都是一样的。
利用的是math包下的rand方法。

  1. package main
  2. import (
  3. "fmt"
  4. "math/rand"
  5. )
  6. func main() {
  7. //随机输出一个非负伪随机数
  8. fmt.Println(rand.Int())
  9. //输出一个100以内的伪随机数
  10. fmt.Println(rand.Intn(100))
  11. }

image.png
执行五次都是一样的结果。

真随机数

同样是使用rand方法,但是这次使用的是crypto包,而不是math包。

  1. package main
  2. import (
  3. "crypto/rand"
  4. "fmt"
  5. "math/big"
  6. )
  7. func main() {
  8. //输出一个100以内的随机数
  9. res, _ := rand.Int(rand.Reader, big.NewInt(100))
  10. fmt.Println(res)
  11. }

image.png