go语言随机数rand包的用法及说明

 更新时间:2026年06月25日 10:48:57   作者:暖雪冷泉  
这段描述主要介绍了生成随机数的方法,包括使用标准正态分布和标准指数分布生成随机浮点型数据,并生成指定范围内的随机整数排列,适合编程和数据分析场景

go随机数rand包用法

生成随机数,随机生成种子

//设置随机数种子,由于种子数值,每次启动都不一样
//所以每次随机数都是随机的
rand.Seed(time.Now().UnixNano())
//随机生成100以内的正整数
fmt.Println(rand.Int(100))

生成随机整数

//生成非负伪随机int值
fmt.Println(rand.Int())
//返回一个int32类型的非负的31位伪随机数
fmt.Println(rand.Int31())
//返回一个int64类型的非负的63位伪随机数
fmt.Println(rand.Int63())
//返回一个uint32类型的非负的32位伪随机数
fmt.Println(rand.Uint32())
//返回一个取值范围在[0,n)的伪随机int32值,如果n<=0会panic
fmt.Println(rand.Int31n(n))
//返回一个取值范围在[0, n)的伪随机int64值,如果n<=0会panic
fmt.Println(rand.Int63n(n))

生成随机浮点型数据

//生成取值范围[0.0, 1.0)的伪随机float32值
fmt.Println(rand.Float32())
//生成取值范围[0.0, 1.0)的伪随机float64值
fmt.Println(rand.Float64())

生成标准正态分布

返回一个服从标准正态分布(标准差=1,期望=0)

取值范围在[-math.MaxFloat64, +math.MaxFloat64]的float64值。

fmt.Println(rand.NormFloat64())
//生成不同的正态分布值
fmt.Println(rand.NormFloat64() * 标准差 + 期望)

生成标准指数分布

返回一个服从标准指数分布(率参数=1,率参数是期望的倒数)

取值范围在(0, +math.MaxFloat64]的float64值。

fmt.Println(rand.ExpFloat64())
//生成不同的指数分布值
fmt.Println(rand.ExpFloat64() / 率参数)

返回一个有n个元素的,[0,n)范围内整数的伪随机排列的切片

fmt.Println(rand.Perm(10)) // [3 7 0 1 9 2 4 5 6 8]

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 细说Go语言中空结构体的奇妙用途

    细说Go语言中空结构体的奇妙用途

    Go语言中,我们可以定义空结构体,即没有任何成员变量的结构体,使用关键字 struct{} 来表示。这种结构体似乎没有任何用处,但实际上它在 Go 语言中的应用非常广泛,本文就来详解讲讲
    2023-05-05
  • 浅析Golang开发中goroutine的正确使用姿势

    浅析Golang开发中goroutine的正确使用姿势

    很多初级的Gopher在学习了goroutine之后,在项目中其实使用率不高,所以这篇文章小编主要来带大家深入了解一下goroutine的常见使用方法,希望对大家有所帮助
    2024-03-03
  • Golang接口使用教程详解

    Golang接口使用教程详解

    在 Go 语言中接口包含两种含义:它既是方法的集合, 同时还是一种类型并且在Go 语言中是隐式实现的。本文通过示例详细介绍了Golang接口的使用,需要的可以参考一下
    2022-09-09
  • 解析golang中的并发安全和锁问题

    解析golang中的并发安全和锁问题

    本文我们来学习一下golang中的并发安全和锁问题,文章通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2021-11-11
  • golang类型转换之interface转字符串string简单示例

    golang类型转换之interface转字符串string简单示例

    在我们使用Golang进行开发过程中,总是绕不开对字符或字符串的处理,这篇文章主要给大家介绍了关于golang类型转换之interface转字符串string的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-01-01
  • 详解Golang中Channel的用法

    详解Golang中Channel的用法

    如果说goroutine是Go语言程序的并发体的话,那么channels则是它们之间的通信机制。这篇文章主要介绍Golang中Channel的用法,需要的朋友可以参考下
    2020-11-11
  • Go语言格式化动词使用详解

    Go语言格式化动词使用详解

    这篇文章主要介绍了Go语言格式化动词使用详解的相关资料,需要的朋友可以参考下
    2023-08-08
  • Go语言题解LeetCode561数组拆分

    Go语言题解LeetCode561数组拆分

    这篇文章主要为大家介绍了Go语言题解LeetCode561数组拆分示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-12-12
  • win7下配置GO语言环境 + eclipse配置GO开发

    win7下配置GO语言环境 + eclipse配置GO开发

    这篇文章主要介绍了win7下配置GO语言环境 + eclipse配置GO开发,需要的朋友可以参考下
    2014-10-10
  • Golang unsafe包中的类型和函数详解

    Golang unsafe包中的类型和函数详解

    Golang中的unsafe包用于在运行时进行低级别的操作,这些操作通常是不安全的,因为可以打破Golang的类型安全性和内存安全性,使用 unsafe包的程序可能会影响可移植性和兼容性,接下来看下unsafe包中的类型和函数
    2023-08-08

最新评论