Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
 Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Пятничная экзотическая задачка.

Распечатать прямоугольник цифирками по спирали.

123
654


Или
123
894
765


Реализация - чем экзотичнее - тем лучше. Brainfuck. Машина Тьюринга. Perl. Функциональщина.
Формула мат-лаба. Чистая функция или грязная. SQL-запрос. Конечные-бесконечне автоматы.
Корутины.

Вобщем проявите фантазию. Разумеется параметризация должна быть. 2х3 или 3х3....

Gogo кодить!!!

Самому отличившемуся - респект.

Сообщение было отредактировано: 4 окт 19, 18:40
4 окт 19, 18:37    [21987057]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Dima T
Member

Откуда:
Сообщений: 14096
Я тоже на эту тему задумывался :)

Предлагаю чуть упростить задачу: прямоугольник заменяем квадратом, а спираль закручиваем внутрь, т.е.
1 2 3
8 9 4
7 6 5

Так и код будет красивее и студентам списать не получится.
4 окт 19, 18:45    [21987065]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48641
Квадрат это слишком просто. Прямоугольник 7х3 - вот это вызов.
5 окт 19, 13:40    [21987321]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
А что будет сложного в 7:3 ? Или чем сложнее?
5 окт 19, 13:55    [21987329]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Для квадрата размера N. На неком гипотетическом Logo.
выглядело бы так.

Вперед N
Поворот вправо
....
N=N-1
И повтор.

Это будет просто закрашивание. А нам надо добавить еще учет количества.
Тоесть движение черепашки вперед - это еще и закрашивание сиквенсом.
5 окт 19, 16:48    [21987362]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Забавная штука есть Piet. Язык программирования где команды - это цветные квадраты. А растр - это суть исходник.

http://www.dangermouse.net/esoteric/piet/samples.html
5 окт 19, 17:02    [21987367]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Dima T
Member

Откуда:
Сообщений: 14096
Я тут подумал что можно попробовать решить другую задачу: имея размер квадрата и координаты ячейки рассчитать ее номер.

Каждый квадрат 2N-2 ячеек, где N размер стороны. Отсюда вычисляем первое число квадрата. Далее надо как-то получить N и на каком месте ячейка
6 окт 19, 09:49    [21987539]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
В топике Тяпничная география
мы решали более интересную задачу. Обход плоскости по кривой Гилберта. Кривая интересна тем что расстояние между
соседними точками всегда 1 в абсолютном эквиваленте. И любые интервалы отложенные вдоль этой кривой всегда
представляют собой композицию квадратов. Причем минимальную. Я обратил внимание тогда что эту кривую часто
используют для графического изображения интервалов IP-blocks.
6 окт 19, 12:20    [21987577]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1771
mayton,

тему топика вроде обсуждали уже тут:
https://www.sql.ru/forum/1118954-1/obhod-pryamougolnika-po-spirali-poisk-bolee-podhodyashhego-algoritma
6 окт 19, 12:40    [21987582]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Aleksandr Sharahov,

Да это клон. Я создал. Как и обещал но с другим смыслом.
6 окт 19, 12:57    [21987590]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Dimitry Sibiryakov
Member

Откуда:
Сообщений: 48641
mayton
А что будет сложного в 7:3 ?

Положение числа 1. При раскрутке из центра.
6 окт 19, 13:31    [21987613]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1771
Dimitry Sibiryakov,

а что мешает крутить из угла в центр, уменьшая номера клеток?
6 окт 19, 14:20    [21987626]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 10988
mayton
Распечатать прямоугольник цифирками по спирали.
Никаких проблем, даже кодить неинтересно.
В обработке изображений алгоритм обхода называется цепным кодом Фримена.
Просто идем от верхней левой ячейки и ищем ближайшую пустую по- или против часовой.
6 окт 19, 14:42    [21987632]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 10988
Dimitry Sibiryakov
Положение числа 1. При раскрутке из центра.
Строим алгоритм обхода "из угла", потом перенумеровываем в обратном порядке.
6 окт 19, 15:08    [21987637]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1771
Соколинский Борис,

там нет пустых и не пустых, они не отличаются.

Ну, типа, не спортивно царапать автомобили гвоздиком при подсчете )
6 окт 19, 16:09    [21987646]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
не думаю, что алгоритм Фримена поможет распечатать (именно распечатать, а не "обойти изображение") такую спираль
0   1   2   3   4   5   6
21  22  23  24  25  26  7
20  35  36  37  38  27  8
19  34  41  40  39  28  9
18  33  32  31  30  29  10
17  16  15  14  13  12  11

да и когда там как-то дохрена для студента
тут математикой надо решать
построчный перебор и заполнение каждой строки (вектора) с учётом границ, которые сужаются
6 окт 19, 16:26    [21987651]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
*когда = кода
6 окт 19, 16:26    [21987652]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 10988
Aleksandr Sharahov
там нет пустых и не пустых, они не отличаются.
Даже не знаю что сказать.
Не могу представить средство разработки в котором невозможно определить, была ли уже заполнена ячейка.
6 окт 19, 16:39    [21987655]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Соколинский Борис
Aleksandr Sharahov
там нет пустых и не пустых, они не отличаются.
Даже не знаю что сказать.
Не могу представить средство разработки в котором невозможно определить, была ли уже заполнена ячейка.

Функция которая не помнит состояние доски.
6 окт 19, 16:49    [21987658]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 1840
полудух
не думаю, что алгоритм Фримена поможет распечатать (именно распечатать, а не "обойти изображение") такую спираль
0   1   2   3   4   5   6
21  22  23  24  25  26  7
20  35  36  37  38  27  8
19  34  41  40  39  28  9
18  33  32  31  30  29  10
17  16  15  14  13  12  11

да и когда там как-то дохрена для студента тут математикой надо решать
построчный перебор и заполнение каждой строки (вектора) с учётом границ, которые сужаются
Если сделать из центра спираль
(вместо 2-х на 3 цифры по горизонтали)
начиная с 0 и заканчивая 41,
то просто меняем очерёдность с 0 - 41 на 41 - 0.
6 окт 19, 16:49    [21987659]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Соколинский Борис
Member

Откуда: Москва
Сообщений: 10988
полудух
не думаю, что алгоритм Фримена поможет распечатать (именно распечатать, а не "обойти изображение") такую спираль
А в чем проблема? Именно так она и построится.
Можно и без Фримена, просто вычеркивать заполненные строки/столбцы и менять направление обхода при завершении линмм
6 окт 19, 16:59    [21987664]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
полудух
Member

Откуда: планета орков, г.Зверополис
Сообщений: 942
Gennadiy Usov
то просто меняем очерёдность с 0 - 41 на 41 - 0.

и что это будет?
в одной строке всего 7 ячеек, а вы хотите 42 обходить туда-обратно
Соколинский Борис
Можно и без Фримена, просто вычеркивать заполненные строки/столбцы и менять направление обхода при завершении линмм

затык в границах. Они живут своей жизнью. При этом ещё и сокращаются.
6 окт 19, 17:18    [21987668]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1771
Соколинский Борис
полудух
не думаю, что алгоритм Фримена поможет распечатать (именно распечатать, а не "обойти изображение") такую спираль
А в чем проблема? Именно так она и построится.
Можно и без Фримена, просто вычеркивать заполненные строки/столбцы и менять направление обхода при завершении линмм


Написать функцию f(m,n,i,j), которая при минимальных затратах памяти
возвращает номер присвоенный ячейке [i,j] в матрице m*n.
6 окт 19, 17:19    [21987669]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
Gennadiy Usov
Member

Откуда:
Сообщений: 1840
полудух
Gennadiy Usov
то просто меняем очерёдность с 0 - 41 на 41 - 0.

и что это будет?
в одной строке всего 7 ячеек, а вы хотите 42 обходить туда-обратно
А если ещё раз взглянуть на картинку (где 42) и подумать.

И поставить вместо 41 - 0, вместо 40 - 1, ...., вместо 0 - 41.
Что получится?

То есть, обход из центра от 0 до 41, а потом меняются цифры в обратном порядке.
6 окт 19, 17:39    [21987674]     Ответить | Цитировать Сообщить модератору
 Re: Ну что... с пятницей чтоли  [new]
mayton
Member

Откуда: loopback
Сообщений: 42918
Двумерная поверхность по форме напоминающая пирамидку.
6 окт 19, 17:42    [21987676]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4   вперед  Ctrl      все
Все форумы / Программирование Ответить