Golang编程实现生成n个从a到b不重复随机数的方法
本文实例讲述了Golang编程实现生成n个从a到b不重复随机数的方法。分享给大家供大家参考,具体如下:
代码很简单:
packagetest import( "fmt" "math/rand" "time" ) //生成若干个不重复的随机数 funcRandomTestBase(){ //测试5次 fori:=0;i<5;i++{ nums:=generateRandomNumber(10,30,10) fmt.Println(nums) } } //生成count个[start,end)结束的不重复的随机数 funcgenerateRandomNumber(startint,endint,countint)[]int{ //范围检查 ifend<start||(end-start)<count{ returnnil } //存放结果的slice nums:=make([]int,0) //随机数生成器,加入时间戳保证每次生成的随机数不一样 r:=rand.New(rand.NewSource(time.Now().UnixNano())) forlen(nums)<count{ //生成随机数 num:=r.Intn((end-start))+start //查重 exist:=false for_,v:=rangenums{ ifv==num{ exist=true break } } if!exist{ nums=append(nums,num) } } returnnums }
输出结果:
[12201819212815131110] [28151210201816242717] [25282919211216131115] [27201923181321241226] [19102718281222141626]
希望本文所述对大家Go语言程序设计有所帮助。