понедельник, 27 апреля 2020 г.

Перемешать срез или массив в Golang

Функция 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 вы будете получать одинаковую последовательность псевдослучайных чисел при каждом запуске программы.


Читайте также:


Комментариев нет:

Отправить комментарий