«В»: Напишите программу, которая заполняет массив из N = 10 элементов случайными числами в диапазоне [10,100] и сортирует его по возрастанию последней цифры числа (сначала идут все числа, которые заканчиваются на 0, потом все, которые заканчиваются на 1, и т.д.). Пример: Массив: 12 10 31 40 55 63 28 87 52 92 Сортировка: 10 40 31 12 52 92 63 55 87 28. Нужно сделать в Python.
Хорошо, я рад помочь! Вот программный код на языке Python, который решает задачу:
```python
import random
# Функция для сортировки массива по последней цифре
def last_digit_sort(arr):
# Создаем словарь, в котором ключами являются последние цифры чисел
last_digit_dict = {}
# Заполняем словарь пустыми списками
for i in range(10):
last_digit_dict[i] = []
# Заполняем словарь числами из массива, в соответствующие списки
for num in arr:
last_digit = num % 10
last_digit_dict[last_digit].append(num)
# Создаем новый отсортированный массив
sorted_arr = []
# Обходим словарь и добавляем числа из списков в новый массив
for i in range(10):
sorted_arr.extend(last_digit_dict[i])
return sorted_arr
# Основная программа
N = 10
arr = []
# Заполняем массив случайными числами в диапазоне [10,100]
for i in range(N):
arr.append(random.randint(10, 100))
print("Массив:", arr)
# Сортируем массив по последней цифре
sorted_arr = last_digit_sort(arr)
print("Сортировка:", sorted_arr)
```
Объяснение решения:
1. Мы начинаем с импорта модуля random, который нужен для генерации случайных чисел.
2. Затем мы определяем функцию `last_digit_sort`, которая принимает массив чисел и возвращает отсортированный массив.
3. В функции `last_digit_sort` мы создаем словарь `last_digit_dict`, где ключами являются последние цифры чисел.
4. Затем мы заполняем словарь `last_digit_dict` пустыми списками, чтобы для каждой последней цифры был список для хранения чисел.
5. Мы проходим по массиву чисел, вычисляем последнюю цифру каждого числа и добавляем его в соответствующий список в словаре `last_digit_dict`.
6. Создаем новый отсортированный массив `sorted_arr`.
7. Мы обходим словарь `last_digit_dict` и добавляем числа из списков в новый массив, сохраняя порядок сортировки сначала по последней цифре 0, затем 1 и так далее.
8. В основной программе определяем переменную N, которая указывает количество элементов в массиве.
9. Создаем пустой массив `arr`, в который будем добавлять случайные числа.
10. Заполняем массив `arr` случайными числами в диапазоне [10, 100] с помощью цикла for и функции `random.randint`.
11. Выводим исходный массив `arr`.
12. Вызываем функцию `last_digit_sort` для сортировки массива по последней цифре.
13. Выводим отсортированный массив `sorted_arr`.
Ответ на задачу:
```
Массив: [12, 10, 31, 40, 55, 63, 28, 87, 52, 92]
Сортировка: [10, 40, 31, 12, 52, 92, 63, 55, 87, 28]
```
В данном примере массив из 10 элементов `[12, 10, 31, 40, 55, 63, 28, 87, 52, 92]` сортируется по последней цифре числа, в соответствии с правилом, указанным в задаче. Результатом является массив `[10, 40, 31, 12, 52, 92, 63, 55, 87, 28]`.
```python
import random
# Функция для сортировки массива по последней цифре
def last_digit_sort(arr):
# Создаем словарь, в котором ключами являются последние цифры чисел
last_digit_dict = {}
# Заполняем словарь пустыми списками
for i in range(10):
last_digit_dict[i] = []
# Заполняем словарь числами из массива, в соответствующие списки
for num in arr:
last_digit = num % 10
last_digit_dict[last_digit].append(num)
# Создаем новый отсортированный массив
sorted_arr = []
# Обходим словарь и добавляем числа из списков в новый массив
for i in range(10):
sorted_arr.extend(last_digit_dict[i])
return sorted_arr
# Основная программа
N = 10
arr = []
# Заполняем массив случайными числами в диапазоне [10,100]
for i in range(N):
arr.append(random.randint(10, 100))
print("Массив:", arr)
# Сортируем массив по последней цифре
sorted_arr = last_digit_sort(arr)
print("Сортировка:", sorted_arr)
```
Объяснение решения:
1. Мы начинаем с импорта модуля random, который нужен для генерации случайных чисел.
2. Затем мы определяем функцию `last_digit_sort`, которая принимает массив чисел и возвращает отсортированный массив.
3. В функции `last_digit_sort` мы создаем словарь `last_digit_dict`, где ключами являются последние цифры чисел.
4. Затем мы заполняем словарь `last_digit_dict` пустыми списками, чтобы для каждой последней цифры был список для хранения чисел.
5. Мы проходим по массиву чисел, вычисляем последнюю цифру каждого числа и добавляем его в соответствующий список в словаре `last_digit_dict`.
6. Создаем новый отсортированный массив `sorted_arr`.
7. Мы обходим словарь `last_digit_dict` и добавляем числа из списков в новый массив, сохраняя порядок сортировки сначала по последней цифре 0, затем 1 и так далее.
8. В основной программе определяем переменную N, которая указывает количество элементов в массиве.
9. Создаем пустой массив `arr`, в который будем добавлять случайные числа.
10. Заполняем массив `arr` случайными числами в диапазоне [10, 100] с помощью цикла for и функции `random.randint`.
11. Выводим исходный массив `arr`.
12. Вызываем функцию `last_digit_sort` для сортировки массива по последней цифре.
13. Выводим отсортированный массив `sorted_arr`.
Ответ на задачу:
```
Массив: [12, 10, 31, 40, 55, 63, 28, 87, 52, 92]
Сортировка: [10, 40, 31, 12, 52, 92, 63, 55, 87, 28]
```
В данном примере массив из 10 элементов `[12, 10, 31, 40, 55, 63, 28, 87, 52, 92]` сортируется по последней цифре числа, в соответствии с правилом, указанным в задаче. Результатом является массив `[10, 40, 31, 12, 52, 92, 63, 55, 87, 28]`.