包"math/rand"

随机数生成器,可以生成 整型或浮点型 的伪随机数。

随机数种子

不同的种子生成不同的随机数,无种子编译后运行的结果是定值。

通常以时钟作为参数初始化,rand.Seed(time.Now().UnixNano())。

随机函数

rand.Int()

返回一个随机整数

package mainimport ("fmt""math/rand""time"
)func main() {nums := make([]int, 3)rand.Seed(time.Now().UnixNano())for j := 0; j < 10; j++ {for i := 0; i < 3; i++ {nums[i] = rand.Int()fmt.Print(nums[i])fmt.Print("\t")}fmt.Println()}
}

输出样例:

8547983782177664082 3052552994446827557 8765581018699603124

5361649810688880538 7247555699230090626 6921521756094709862

7061225496098313961 4043787731930393944 4881510333544611431

2742623498123161832 8826061491064266771 7540769746514898360

1640562288017497602 7737908637884326151 927535944994878966

7393177581525888978 6511469144479537097 5004275440415177087

88816382525065439     4249346871495670764 8192005441386526629

5523554829668683712 69312977258692669     6584352354533757392

3124007232705319196 5635727296343069158 4284023996891098234

3861142140259007378 4879978992907007455 473741157600402359

rand.Intn(n)

返回0~n间不包括n的非负整数

package mainimport ("fmt""math/rand""time"
)func main() {nums := make([]int, 8)rand.Seed(time.Now().UnixNano())for j := 0; j < 10; j++ {for i := 0; i < 8; i++ {nums[i] = rand.Intn(100)fmt.Print(nums[i])fmt.Print("\t")}fmt.Println()}
}

输出样例:

40   63  3   47  76  78  21  44
43  40  12  87  94  90  97  68
0   47  14  71  42  52  20  72
86  57  78  65  53  77  75  70
76  26  63  40  57  75  77  82
86  4   46  25  2   67  46  0
53  64  70  37  59  41  47  63
80  3   85  42  1   47  31  7
2   6   2   40  33  49  30  32
68  90  74  51  40  57  92  97

注:   rand.Intn(100) 与 rand.Int()%100 效果相近。

实例

红球 1-33 选择6个 不能重复;蓝球 1-16 选择1个;蓝球和红球可以重复

package mainimport ("fmt""math/rand""time"
)func main() {red := make([]int, 6)rand.Seed(time.Now().UnixNano())for i := 0; i < len(red); i++ {t := rand.Intn(33) + 1for j := 0; j < i; j++ {if t == red[j] {t = rand.Intn(33) + 1j--}}red[i] = t}fmt.Println("红球:", red, "\n蓝球:", rand.Intn(16)+1)
}

红球: [25 28 19 26 33 14]

蓝球: 7


其他随机函数

按类型随机类

func (r *Rand) Int31() int32
func (r *Rand) Int63() int64
func (r *Rand) Uint32() uint32
func (r *Rand) Float32() float32  // 返回一个取值范围在[0.0, 1.0)的伪随机float32值
func (r *Rand) Float64() float64  // 返回一个取值范围在[0.0, 1.0)的伪随机float64值

指定随机范围类

func (r *Rand) Int31n(n int32) int32
func (r *Rand) Int63n(n int64) int64

伪随机排列的切片

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

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

生成标准正态分布

返回一个服从标准正态分布(标准差=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() / 率参数)

__the End__

Go语言 rand(随机数)包相关推荐

  1. C语言随机数rand用法,【转载】随机数的产生 c语言rand的用法

    式子如下 : rand = rand*const_1 + c_var; srand函数就是给它的第一个rand值. 用"int x = rand() % 100;"来生成 0 到 ...

  2. R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项)、randomSequence函数创建不含重复项的随机序列数据集、创建随机字符串

    R语言使用random包生成随机数或者随机字符串实战:randomNumbers函数创建随机整数的数据集(包含重复项).randomSequence函数创建不含重复项的随机序列数据集.创建随机字符串 ...

  3. 【C语言】随机数函数rand和srand

    文章目录 一.随机数函数 1.rand().srand() 2.time() 二.案例实现 1.案例描述 2.代码实现 一.随机数函数 1.rand().srand() C语言产生随机数要用到的函数是 ...

  4. C语言中随机数的生成(rand函数和srand函数)

    CSDN话题挑战赛第2期 参赛话题:学习笔记 学习之路,长路漫漫,写学习笔记的过程就是把知识讲给自己听的过程.这个过程中,我们去记录思考的过程,便于日后复习,梳理自己的思路.学习之乐,独乐乐,不如众乐 ...

  5. C语言 rand函数生成随机数

    在实际的项目中,有时候需要生成一个随机数,在C语言中随机数的生成可以通过使用rand函数来实现. rand函数包含在头文件stdlib.h里,因此使用rand函数需要声明包含stdlib.h. #in ...

  6. C语言rand()函数产生随机数详解

    C语言rand函数产生随机数详解 1.rand函数的原型,功能和界限 2.用rand函数获取随机数 3.随机数生成原理 1.rand函数的原型,功能和界限 rand函数的原型: #include &l ...

  7. c语言用随机数定义数组中,C语言 将发生的随机数存入数组,数据不能相同

    C语言 将产生的随机数存入数组,数据不能相同 1.定义一个一维数,数组大小为24. 2.产生0~23的随机数. 3.将产生的随机数存入i数组,要求数组中的每个数据不能相同. 4.补充说明,这个子程序要 ...

  8. C语言(rand函数)

    C语言(rand函数) (2006-09-24 20:41:59) 转载     srand()就是给rand()提供种子seed 1,先看一个例子 #include <iostream> ...

  9. c语言中有关随机数的程序,C语言中随机数相关问题

    用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand ...

最新文章

  1. 2018 Multi-University Training Contest 3 Problem F. Grab The Tree 【YY+BFS】
  2. c与python的区别-c语言和python的区别是什么
  3. golang操作mysql用例
  4. textarea 转换 html,textarea html标签转换为纯文本
  5. python 之 XML的基本应用总结
  6. C# 事件详解附实例分析
  7. 进程控制1--fork vfork函数
  8. forms角色验证,以普通用户身份登陆管理页面先弹出警告信息窗口
  9. 如果战斗机飞行员弹出,自动驾驶仪会接管飞机安全降落么?
  10. python三大器_Python 入门之 Python三大器 之 迭代器
  11. ffmpeg 转换VC工具已经可以生成工程文件
  12. 机器学习中的矩阵分析与应用
  13. 支付宝支付即时到账接口在ThinkPHP商城中的应用(转载)
  14. python分段函数图像画法_特殊分段函数的图像画法
  15. Microsoft Orleans 之 入门指南
  16. 修改Zabbix标志性logo
  17. 笔记 | gamma分布
  18. fcm基本原理_光谱FCM工作原理
  19. python从键盘上输入一个字符、当输入的是英文字母时_以下程序的功能:从键盘上输入一个字符,当输入的是英文字母时,输出\'输入的是英文字母\'; 当输入的...
  20. 商品属性对应表,商品相册表,用户表,用户收货地址表,地区表,购物车表,送货方式表,订单表,订单明细表的数据库设计

热门文章

  1. BUUCTF-[QCTF2018]X-man-Keyword
  2. Linux netfilter 学习笔记 之十五 netfilter模块添加一个match
  3. Tableau——预警标识
  4. 机壳地与数字地_模拟地的关系
  5. matplotlib画布中属性设置常用函数及其说明
  6. python植物大战僵尸 豆约翰,python植物大战僵尸六之添加僵尸
  7. 安卓 10 周岁了:这些消失的经典 APP 你还记得吗?
  8. android 脚本swipe,移动端滑动插件Swipe教程
  9. 不止SQL优化,数据库还有哪些优化大法?
  10. linux 下打开png文件,png文件扩展名,png文件怎么打开?