Golang:生成n个从a到b不重复的随机数
2015-04-07 18:03
267 查看
代码很简单:
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
}
输出结果:
[12 20 18 19 21 28 15 13 11 10]
[28 15 12 10 20 18 16 24 27 17]
[25 28 29 19 21 12 16 13 11 15]
[27 20 19 23 18 13 21 24 12 26]
[19 10 27 18 28 12 22 14 16 26]
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
}
输出结果:
[12 20 18 19 21 28 15 13 11 10]
[28 15 12 10 20 18 16 24 27 17]
[25 28 29 19 21 12 16 13 11 15]
[27 20 19 23 18 13 21 24 12 26]
[19 10 27 18 28 12 22 14 16 26]
相关文章推荐
- java:随机生成100个不重复的随机数
- Java生成不重复随机数UUID(转)
- C# 生成不重复的随机数
- java 生成一组不同的随机数(不重复)
- python生成不重复随机数和对list乱序的解决方法
- Golang编程实现生成n个从a到b不重复随机数的方法
- C# 生成不重复的随机数
- 随机生成不重复随机数
- 利用HashSet生成一组不重复的随机数
- 生成不重复的随机数
- 生成一定范围的不重复随机数
- Random——生成不重复的随机数
- python生成不重复随机数和对list乱序
- 生成四位随机数,数字不重复
- 生成不重复的随机数 - 常考面试题
- C# Random 生成不重复随机数
- C#随机生成1到60不重复随机数
- PHP不重复随机数的生成方法
- 生成不重复随机数
- 生成不重复随机数 asp