golang中随机化数组

编程

一句话解决方案

  1. 采用rand.Shuffle,将切片随机化处理后返回
  2. 采用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)

}

总结

  1. 方案一会修改原切片(数组)
  2. 方案二可以根据生成的全排列下表数组访问,不对原来的数组进行修改

以上是 golang中随机化数组 的全部内容, 来源链接: utcz.com/z/517036.html

回到顶部