Нужно заполнить массив уникальными рандомными числами, сделать это всё в одной функции, и для проверки уникальности использовать структуру map в Golang
go
import (
"math/rand"
"time"
)
Затем можно создать функцию, которая будет заполнять массив уникальными случайными числами:
go
func fillArrayWithUniqueRandomNumbers(n int) []int {
// Создаем генератор случайных чисел с использованием текущего времени в качестве инициализатора
rand.Seed(time.Now().UnixNano())
// Создаем пустой массив
var arr []int
// Создаем карту для проверки уникальности чисел
uniqueMap := make(map[int]bool)
// Пока не достигнем нужного количества элементов
for len(arr) < n {
// Генерируем случайное число от 1 до 100
num := rand.Intn(100) + 1
// Проверяем, содержится ли уже такое число в карте
if !uniqueMap[num] {
// Если число не содержится, добавляем его в карту и массив
uniqueMap[num] = true
arr = append(arr, num)
}
}
return arr
}
Пояснения к коду:
1. Функция fillArrayWithUniqueRandomNumbers принимает один аргумент n - количество элементов, которыми нужно заполнить массив.
2. Внутри функции создается генератор случайных чисел с использованием текущего времени в качестве инициализатора. Это необходимо для получения различных случайных чисел при каждом запуске программы.
3. Создается пустой массив arr, который будет заполняться уникальными числами.
4. Создается карта uniqueMap, в которой будут храниться уже сгенерированные уникальные числа.
5. Пока длина массива arr меньше, чем n, выполняются следующие действия:
- Генерируется случайное число num от 1 до 100 с помощью функции rand.Intn(100) + 1.
- Проверяется, содержится ли уже число num в карте uniqueMap. Если число не содержится (т.е. uniqueMap[num] равно false), число добавляется в карту и в конец массива arr с помощью функций uniqueMap[num] = true и arr = append(arr, num).
6. Когда длина массива arr достигнет n, функция вернет этот массив.
Пример использования:
go
func main() {
// Заполняем массив из 10 уникальных случайных чисел
arr := fillArrayWithUniqueRandomNumbers(10)
fmt.Println(arr)
}
Вывод:
[82 24 35 7 65 13 46 80 15 41]
Обратите внимание, что при каждом запуске программы значения в массиве будут меняться, т.к. они генерируются случайным образом. Однако, все значения в массиве будут уникальными.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет