РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
344 of 1593 menu

Функция rand.Perm

Функция rand.Perm генерирует случайную перестановку целых чисел. Она принимает один параметр n — количество элементов в перестановке, и возвращает слайс []int длины n, содержащий числа от 0 до n-1 в случайном порядке. Каждое число встречается в слайсе ровно один раз.

Синтаксис

rand.Perm(n)

Пример

Давайте сгенерируем перестановку из 5 чисел:

package main import ( "fmt" "math/rand" ) func main() { res := rand.Perm(5) fmt.Println(res) }

Результат выполнения кода (будет случайным):

[2 4 1 3 0]

Пример

Давайте сгенерируем перестановку из 3 чисел и выведем каждый элемент отдельно:

package main import ( "fmt" "math/rand" ) func main() { res := rand.Perm(3) for i, v := range res { fmt.Printf("res[%d] = %d\n", i, v) } }

Результат выполнения кода:

"res[0] = 1" "res[1] = 0" "res[2] = 2"

Пример

Используем rand.Perm для создания случайного порядка элементов из существующего слайса:

package main import ( "fmt" "math/rand" ) func main() { original := []string{"a", "b", "c", "d", "e"} perm := rand.Perm(len(original)) shuffled := make([]string, len(original)) for i, index := range perm { shuffled[i] = original[index] } fmt.Println(shuffled) }

Результат выполнения кода (будет случайным):

[d e a c b]

Смотрите также

  • функцию rand.Shuffle,
    которая перемешивает элементы слайса в случайном порядке
  • функцию rand.Intn,
    которая возвращает случайное целое число в заданном диапазоне
  • функцию rand.Int,
    которая возвращает случайное целое число
  • функцию rand.Float64,
    которая возвращает случайное число с плавающей точкой
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить