




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第详解Go语言中rand(随机数)包的使用目录包math/rand随机数种子随机函数rand.Int()rand.Intn(n)实例其他随机函数按类型随机类指定随机范围类伪随机排列的切片生成标准正态分布生成标准指数分布
包math/rand
随机数生成器,可以生成整型或浮点型的伪随机数。
随机数种子
不同的种子生成不同的随机数,无种子编译后运行的结果是定值。
通常以时钟作为参数初始化,rand.Seed(time.Now().UnixNano())。
随机函数
rand.Int()
返回一个随机整数
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
nums:=make([]int,3)
rand.Seed(time.Now().UnixNano())
forj:=0;jj++{
fori:=0;ii++{
nums[i]=rand.Int()
fmt.Print(nums[i])
fmt.Print("\t")
fmt.Println()
输出样例:
854798378217766408230525529944468275578765581018699603124
536164981068888053872475556992300906266921521756094709862
706122549609831396140437877319303939444881510333544611431
274262349812316183288260614910642667717540769746514898360
16405622880174976027737908637884326151927535944994878966
739317758152588897865114691444795370975004275440415177087
8881638252506543942493468714956707648192005441386526629
5523554829668683712693129772586926696584352354533757392
312400723270531919656357272963430691584284023996891098234
38611421402590073784879978992907007455473741157600402359
rand.Intn(n)
返回0~n间不包括n的非负整数
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
nums:=make([]int,8)
rand.Seed(time.Now().UnixNano())
forj:=0;jj++{
fori:=0;ii++{
nums[i]=rand.Intn(100)
fmt.Print(nums[i])
fmt.Print("\t")
输出样例:
406334776782144
4340128794909768
047147142522072
8657786553777570
7626634057757782
8644625267460
5364703759414763
8038542147317
2624033493032
6890745140579297
注:rand.Intn(100)与rand.Int()%100效果相近。
实例
红球1-33选择6个不能重复;蓝球1-16选择1个;蓝球和红球可以重复
packagemain
import(
"fmt"
"math/rand"
"time"
funcmain(){
red:=make([]int,6)
rand.Seed(time.Now().UnixNano())
fori:=0;ilen(red);i++{
t:=rand.Intn(33)+1
forj:=0;jj++{
ift==red[j]{
t=rand.Intn(33)+1
red[i]=t
fmt.Println("红球:",red,"\n蓝球:",rand.Intn(16)+1)
输出:
红球:[252819263314]
蓝球: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(nint32)int32
func(r*Rand)Int63n(nint64)int64
伪随机排列的切片
返回一个有n个元素的,[0,n)范围内整数的伪随机排列的切片
fmt.Println(rand.Perm(10))//[3701924568]
生成标准正态分布
返回一个服从标准正态分布(标准差=1,期望=0)
取值范围在[-math.MaxFloat64,+math.MaxFloat64]的float64值。
fmt.Println(rand.NormFloat64())
//生成不同的正态分布值
fmt.Println(rand.NormFloat64()*标准差+期望)
生成标准指数分布
返
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 外资企业中国雇员培训与发展协议
- 高端游艇码头泊位使用及船舶代购服务合同
- 海外投资风险管理与审计合作协议
- 果园采摘机器人租赁与农资供应综合服务合同
- 国际商标注册及市场拓展代理合作协议
- 《美术教学之道》课件
- 《建筑工程合同管理与结算课件》
- 美容院卫生培训大纲
- 《光开关技术》课件
- 空乘礼仪握手课程规范
- 心智突围:个体与组织如何打破变革免疫
- 计算机风险评估报告
- 《认识其他动物的卵》优质课件
- 医疗机构诊疗科目名录汇总
- GB/T 1965-2023多孔陶瓷室温弯曲强度试验方法
- 一种改进的ip-q谐波电流检测方法
- 担保书之第三方担保合同模板
- 南京大屠杀资料
- 河道治理水葫芦施工方案
- 眼科门诊病历(清晰整齐)
- 学校专任教师基本情况统计样表
评论
0/150
提交评论