Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/48: Рейтинг темы: голосов - 48, средняя оценка - 4.75
 Аватар для Tetrafishka
83 / 1 / 2
Регистрация: 28.03.2015
Сообщений: 64

Заполнить матрицу спиралью в центр

05.09.2015, 15:20. Показов 9236. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
такой вопросик вам: что делает функция
Python
1
pow(-1, j)
я читал она возводит в степень, возвращает значение, как она здесь работает?

Добавлено через 20 минут
и могу ли я на основе этого кода создать матрицу 5х5 спиралью в цент, если да то толкните в правильном направлении

 Комментарий модератора 
Не нужно в чужой теме задавать не связанные с ней вопросы. Создавайте свою.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.09.2015, 15:20
Ответы с готовыми решениями:

Заполнить матрицу спиралью
Заполнить матрицу спиралью, заранее спасибо

Заполнить матрицу спиралью по диагонали
Создать матрицу с заполнением спиралью по диагонали, используя StringGrid с произвольным выбором размеров:

Заполнить матрицу спиралью зигзагом
Заполнить матрицу числами с динамическим изменением матрицы

4
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
07.09.2015, 17:07
"Заполнить матрицу спиралью в центр"
Python
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
29
30
31
32
33
34
35
36
37
def print_(*kwargs):
    for y in kwargs:
        print ''.join(["%4d"%x for x in y])
    print
 
SIZE = 13
 
def change(matrix, step, val): 
    if step >= SIZE - step:
        return matrix
    
    for i in range(step, SIZE - step):
        matrix[SIZE - step - 1][i] =    SIZE - 1  - 3*step + i + val
        matrix[i][SIZE - step - 1] = 3*(SIZE - 1) - 5*step - i + val
        matrix[step][i]            = 4*(SIZE - 1) - 7*step - i + val
        matrix[i][step]            =              -   step + i + val
        
    return change(matrix,  step + 1, 4*(SIZE - 1) - 8*step + val)
        
 
matrix = [[0 for x in range(SIZE)] for y in range(SIZE)]
print_(*change(matrix, 0, 0))
 
>>> 
   0  47  46  45  44  43  42  41  40  39  38  37  36
   1  48  87  86  85  84  83  82  81  80  79  78  35
   2  49  88 119 118 117 116 115 114 113 112  77  34
   3  50  89 120 143 142 141 140 139 138 111  76  33
   4  51  90 121 144 159 158 157 156 137 110  75  32
   5  52  91 122 145 160 167 166 155 136 109  74  31
   6  53  92 123 146 161 168 165 154 135 108  73  30
   7  54  93 124 147 162 163 164 153 134 107  72  29
   8  55  94 125 148 149 150 151 152 133 106  71  28
   9  56  95 126 127 128 129 130 131 132 105  70  27
  10  57  96  97  98  99 100 101 102 103 104  69  26
  11  58  59  60  61  62  63  64  65  66  67  68  25
  12  13  14  15  16  17  18  19  20  21  22  23  24
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
07.09.2015, 17:24
golatin, ужасненйшей оформление кода!!!! Так код оформлять нельзя!
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
07.09.2015, 21:21
alex925 Почему? С-style - не нравится? Так, что ли лучше для понимания кода?
Python
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
29
30
31
32
33
34
35
36
37
def print_(*kwargs):
    for y in kwargs:
        print ''.join(["%4d"%x for x in y])
    print
 
SIZE=13
 
def change(matrix, step, val): 
    if step>=SIZE-step:
        return matrix
    
    for i in range(step, SIZE-step):
        matrix[SIZE-step-1][i]=SIZE-1-3*step+i+val
        matrix[i][SIZE-step-1]=3*(SIZE-1)-5*step-i+val
        matrix[step][i]=4*(SIZE-1)-7*step-i+val
        matrix[i][step]=-step+i+val
        
    return change(matrix, step+1, 4*(SIZE-1)-8*step+val)
        
 
matrix = [[0 for x in range(SIZE)] for y in range(SIZE)]
print_(*change(matrix, 0, 0))
 
>>> 
   0  47  46  45  44  43  42  41  40  39  38  37  36
   1  48  87  86  85  84  83  82  81  80  79  78  35
   2  49  88 119 118 117 116 115 114 113 112  77  34
   3  50  89 120 143 142 141 140 139 138 111  76  33
   4  51  90 121 144 159 158 157 156 137 110  75  32
   5  52  91 122 145 160 167 166 155 136 109  74  31
   6  53  92 123 146 161 168 165 154 135 108  73  30
   7  54  93 124 147 162 163 164 153 134 107  72  29
   8  55  94 125 148 149 150 151 152 133 106  71  28
   9  56  95 126 127 128 129 130 131 132 105  70  27
  10  57  96  97  98  99 100 101 102 103 104  69  26
  11  58  59  60  61  62  63  64  65  66  67  68  25
  12  13  14  15  16  17  18  19  20  21  22  23  24
Писал для себя, в поисках закономерностей рекуррентных отношений. Мне не так была интересна данная задача "по выводу спирали", а намного была интересней следующая: может ли элемент https://www.cyberforum.ru/cgi-bin/latex.cgi?a(i,j) быть выражен через аналитическую формулу? Мой ответ, - да. (Для главной диагонали линейное рекуррентное уравнение: https://www.cyberforum.ru/cgi-bin/latex.cgi?{a}_{n+1}-{a}_{n}=const - 8*n, остальные элементы однозначно определяются опорным, следовательно сложность алгоритма не https://www.cyberforum.ru/cgi-bin/latex.cgi?O({n}^{2}), а ...)

Не по теме:

IMHO: Сейчас столько code-styling программ, что это уже придирки: Ctrl-c, Ctrl-v и читай код в том стиле, к которому привык...
Задрали эти Google-соглашения

0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
07.09.2015, 21:34
Цитата Сообщение от golatin Посмотреть сообщение
Сейчас столько code-styling программ, что это уже придирки
Это не придирки, а правила хорошего тона и это не стиль Си, на сколько я знаю так пишут конченные из 1с.
Во всем остальном цивилизованном мирее тонна пробелов как у тебя не привествуется.

Кстати ты один не правильный код переписал опять неправильно.

Почитай на досуге вот это http://pythonworld.ru/osnovy/p... n.html#id9
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
07.09.2015, 21:34
Помогаю со студенческими работами здесь

Заполнить матрицу спиралью через процедуры (procedure)
1)Заполнить матрицу спиралью через процедуры(procedure)

Заполнить матрицу спиралью против часовой стрелки
Заполнить матрицу n*n по стрелке. Для того чтобы увидеть правильность алгоритма, заполняйте матрицу числами от 1 до n. Под буквой Г

Заполнить матрицу спиралью начиная с центра и двигаясь вниз.
Друзья, прошу помочь мне в решении задачи дикой срочности. Необходимо заполнить матрицу спиралью начиная с центра и двигаясь вниз. ...

Заполнить массив спиралью
Заполнить массив n×n числами от 0 до n2 −1 в требуемом порядке:

Заполнить массив спиралью
Нужна помощь. Знаю что есть много тем по данному вопросу. Но никак не могу въехать. Нужно заполнить массив спиралью по часовой стрелки. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru