golang实现生成不重复随机数
16lz
2021-01-22
代码示例如下:
package testimport ("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}//存放结果的slicenums := make([]int, 0)//随机数生成器,加入时间戳保证每次生成的随机数不一样r := rand.New(rand.NewSource(time.Now().UnixNano()))for len(nums) < count {//生成随机数num := r.Intn((end - start)) + start//查重exist := falsefor _, v := range nums {if v == num {exist = truebreak}}if !exist {nums = append(nums, num)}}return nums}
输出结果如图:
相关文章教程推荐:golang教程
更多相关文章
- golang怎么生成随机数
- go语言数据类型转换教程
- J2ME Mobile 3D入门教程系列文章之一
- Java中构造、生成XML简明教程
- XML简明教程(4)
- XML简明教程(6)
- XML简明教程(5)
- XML简明教程(7)
- XML简明教程(1)