golang中随机化数组
一句话解决方案
- 采用rand.Shuffle,将切片随机化处理后返回
- 采用rand.Perm(len(a)), 可以生成全排列数组构成的index数组
func main() {
a := []int{1, 2, 3, 4, 5, 6, 7, 8}
rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(a), func(i, j int) { a[i], a[j] = a[j], a[i] })
fmt.Println(a)
a = []int{1, 2, 3, 4, 5, 6, 7, 8}
rand.Seed(time.Now().UnixNano())
rand.Shuffle(len(a), func(i, j int) { a[i], a[j] = a[j], a[i] })
fmt.Println(a)
a = []int{1, 2, 3, 4, 5, 6, 7, 8}
list := rand.Perm(len(a))
fmt.Println(list)
list1 := rand.Perm(len(a))
fmt.Println(list1)
list2 := rand.Perm(len(a))
fmt.Println(list2)
}
总结
- 方案一会修改原切片(数组)
- 方案二可以根据生成的全排列下表数组访问,不对原来的数组进行修改
以上是 golang中随机化数组 的全部内容, 来源链接: utcz.com/z/517036.html