定制设计【学习笔记】go 生成随机数

目录

核心

go 的标准库(math/rand)定制设计中已经为我们提供了产定制设计生伪字的核心方法,定制设计它们分别是用于产生种子的 rand.Send(value) 定制设计和用于产生伪随机数的 rand.intn(n) 以及类似的 Int31n()Float64() 等。

代码示例

rand.Send(value)
rand.Seed() 函数用于设置种子值以生成伪随机数。如果每次都是用相同的种子值,即 value 值不变,那么会生成相同的伪随机数集合。因此我们需要不同的种子值,而手动更新种子值显然是麻烦的,所以最好的做法就是使用时间戳的形式。

通常我们用 time.Now().UnixNano() 来作为 rand.Seed(value) 中的 value 值。当然也可以使用类似的 time.Now().Unix()time.Now().UnixMilli() 等。

rand.Intn(n)
rand.Intn() 函数接受一个数字 n 并在区间 [0, n) 中返回一个无符号伪随机整数。如果 n 的值小于零,它将引发错误。

如果要返回一个指定区间的随机数,则使用下面的语法:rand.Intn(max-min) + min

package mainimport (	"fmt"	"math/rand"	"time")func main() {	min := 10	max := 20	rand.Seed(time.Now().UnixNano())	// 表示生成 [0,50)之间的随机数	fmt.Println(rand.Intn(50))	// 表示生成 [10,20)之间的随机数	fmt.Println(rand.Intn(max-min) + min)	// 表示生成 [0.0,1.0) 中的伪随机数。	fmt.Println(rand.Float64())}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23

参考与拓展

网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发