Функция rand.Shuffle в пакете math/rand перемешивает входную последовательность, используя заданную функцию подкачки.
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] })
Вывод:
[5 8 6 4 3 7 2 1]
Предупреждение: без вызова rand.Seed вы будете получать одинаковую последовательность псевдослучайных чисел при каждом запуске программы.
Читайте также:
- Go Code Review Comments: Пакет Crypto Rand
- Что такое seed (начальное число, семя) в генераторе случайных чисел?
- Генерация случайных чисел, символов и элементов срезов в Golang
- Создать случайную строку (пароль) в Golang
- Удобный доступ к crypto/rand для создания случайных чисел в Golang
Комментариев нет:
Отправить комментарий