Python Math: создать квадратную матрицу, заполненную элементами от 1 до n2 в спиральном порядке
Python Math: Упражнение-73 с решением
Напишите программу на Python для генерации (с целым числом n) квадратной матрицы, заполненной элементами от 1 до n2 в спиральном порядке.
Пример решения : -
Код Python:
#https://gist.github.com/Ray1988/6806c1b85af70388a277
def generateMatrix(n):
if n<=0:
return []
matrix=[row[:] for row in [[0]*n]*n]
row_st=0
row_ed=n-1
col_st=0
col_ed=n-1
current=1
while (True):
if current>n*n:
break
for c in range (col_st, col_ed+1):
matrix[row_st][c]=current
current+=1
row_st+=1
for r in range (row_st, row_ed+1):
matrix[r][col_ed]=current
current+=1
col_ed-=1
for c in range (col_ed, col_st-1, -1):
matrix[row_ed][c]=current
current+=1
row_ed-=1
for r in range (row_ed, row_st-1, -1):
matrix[r][col_st]=current
current+=1
col_st+=1
return matrix
print(list(generateMatrix(3)))
Пример вывода:
[[1, 2, 3], [8, 9, 4], [7, 6, 5]]
Иллюстрированная презентация:
Блок - схема:
Визуализируйте выполнение кода Python:
Следующий инструмент визуализирует, что компьютер делает шаг за шагом при выполнении указанной программы:
Редактор кода Python:
Есть другой способ решить это решение? Внесите свой код (и комментарии) через Disqus.
Предыдущий: Напишите программу на Python, чтобы создать диапазон для плавающих чисел.
Далее: Напишите программу на Python для выбора случайной даты в текущем году.
Каков уровень сложности этого упражнения?
Новый контент: Composer: менеджер зависимостей для PHP , R программирования
disqus2code