这篇文章主要为大家详细介绍了go语言生成不重复的随机数的方法,文章中的示例代码非常详细,若有兴趣可以学习参考,闲言少叙直接上代码:
package test
import (
"fmt"
"math/rand"
"time"
)
//生成若干个不重复的随机数
func RandomTestBase() {
//测试5次
for i := 0; i < 5; i++ {
nums := generateRandomNumber(10, 30, 10)
fmt.Println(nums)
}
}
//生成count个[start,end)结束的不重复的随机数
func generateRandomNumber(start int, end int, count int) []int {
//范围检查
if end < start || (end-start) < count {
return nil
}
//存放结果的slice
nums := make([]int, 0)
//随机数生成器,加入时间戳保证每次生成的随机数不一样
r := rand.New(rand.NewSource(time.Now().UnixNano()))
for len(nums) < count {
//生成随机数
num := r.Intn((end - start)) + start
//查重
exist := false
for _, v := range nums {
if v == num {
exist = true
break
}
}
if !exist {
nums = append(nums, num)
}
}
return nums
}
输出结果如图:
以上便是go语言生成不重复的随机数的方法,虽然从篇幅上看很复杂,但是示例代码非常详细且容易理解,如果想了解更多相关内容,请关注亿速云行
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。