Python помогите очень срочно
сделать вот такую матрицу
допустим n =1 2 3
# 1 1 1 1 1
# 12221
# 12321
# 12221
# 1 1 1 1 1
помогите пожалуйста ​


YKR4: могут ли повторяться значения в n?

Ответы

Ответ дал: YKR4
0

Ответ:

val_list = [int(input()) for _ in range(3)]

final_matrix = [[] for i in range(len(val_list))]

for value_index, value in enumerate(val_list):

for index, i in enumerate(final_matrix):

if value_index <= index:

final_matrix[index].append(value)

else:

final_matrix[index].append(val_list[index])

for row in final_matrix:

row += reversed(row[:-1])

final_matrix += reversed(final_matrix[:-1])

for i in final_matrix:

print(i)

Объяснение:

входные данные: количество значений можно изменить, но надо это делать в ручную, или же можно как-то по-своему. я этот момент захардкодил, но в целом от этого ничего не зависит.

алгоритм создания матрицы: первоначально матрица состоит из пустых списков количество которых равно длине списка с входными данными.

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

алгоритм отражения: после всех махинаций матрица с входными данными [1, 2, 3] будет выглядеть так:

[1, 1, 1]

[1, 2, 2]

[1, 2, 3]

для получения зеркального отражения в строчках я прохожусь по каждой строке и добавляю к ней эту же отраженную строчку без последнего элемента.

далее я делаю такую же операцию, но только со всей матрицей.

вывод:

[1, 1, 1, 1, 1]

[1, 2, 2, 2, 1]

[1, 2, 3, 2, 1]

[1, 2, 2, 2, 1]

[1, 1, 1, 1, 1]

Вас заинтересует