详解Go语言中rand(随机数)包的使用_第1页
详解Go语言中rand(随机数)包的使用_第2页
详解Go语言中rand(随机数)包的使用_第3页
详解Go语言中rand(随机数)包的使用_第4页
详解Go语言中rand(随机数)包的使用_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第详解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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论