Двумерный массив

M

Пользователь

от Mango , в категории: Python , 2 года назад

Помогите пожалуйста с заданием.

Создать матрицу (двумерный массив), размер спросить у пользователя. Матрицу заполнить случайными значениями, диапазон спросить у пользователя.

Осуществить циклический сдвиг элементов прямоугольной матрицы на n элементов влево и вниз (n вводит пользователь).

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от jaren , 2 года назад

@Mango  Интересная задачка на самом деле и вот мой вариант решения на языке Python, я использую random, но задачку лучше решать с numpy т.к она лучше с матрицами работает и с данными:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import random

# Запрашиваем размер матрицы
rows = int(input("Введите количество строк: "))
cols = int(input("Введите количество столбцов: "))

# Запрашиваем диапазон значений
min_number = int(input("Минимальное рандомное число: "))
max_number = int(input("Максимальное рандомное число: "))

# Создаем матрицу со случайными значениями
matrix = [[random.randint(min_number, max_number) for j in range(cols)] for i in range(rows)]

# Выводим исходную матрицу
print("Исходная матрица:")
for row in matrix:
    print(row)

# Запрашиваем величину сдвига
shift = int(input("Введите величину сдвига: "))

# Осуществляем циклический сдвиг элементов матрицы
shifted_matrix = [[matrix[(i - shift) % rows][(j - shift) % cols] for j in range(cols)] for i in range(rows)]

# Выводим сдвинутую матрицу
print("Сдвинутая матрица:")
for row in shifted_matrix:
    print(row)