2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Обход ячеек пространства
Сообщение01.03.2010, 20:10 
Аватара пользователя
Привет всем! Вот какой вопрос:
целочисленные ячейки плоскости можно обойти (пронумеровать),
скажем, так (по спирали):
"7"-"8"-"9"-...
"|6" "1"-"2|"
"|5"-"4"-"3"
(извиняюсь за дебильный рисунок, но в math не готов такое изобразить).
А есть ли подобный алгоритм обхода ячеек 3-х мерного пространства?
Желательно экономичный и понятный :P

 
 
 
 Re: Обход ячеек пространства
Сообщение01.03.2010, 20:26 
Аватара пользователя
Поместим каждую целочисленную точку пространства в рубик со стороной 1. Просто для наглядности. Теперь начинаем обход из нулевого кубика. Обходим по слоям. первый слой - 26 кубиков. Второй - 98 кубиков. И так далее. Принцип обхода слоёв тоже достаточно очевиден. Начинаем с центрального кубика одного из горизонтальных слоёв, а заканчиваем на центральном кубике другого горизонтального слоя.

 
 
 
 Re: Обход ячеек пространства
Сообщение01.03.2010, 20:44 
Аватара пользователя
Даа!! Сейчас с сыном шестиклассником разобрался :shock:
Спасибо! А как насчет формул $n=n(i,j)$ для плоскости
и $n=n(i,j,k)$ для пространства? Сейчас сам засел написать,
может, сравним? :roll:

 
 
 
 Re: Обход ячеек пространства
Сообщение02.03.2010, 15:39 
Аватара пользователя
Lesobrod в сообщении #293696 писал(а):
(извиняюсь за дебильный рисунок, но в math не готов такое изобразить).

$$\left(
\begin{array}{ccc}
7 & 8 & 9 \\
6 & 1 & 2 \\
5 & 4 & 3
\end{array}\right)
$$
Обычная матрица :)

Если хотите, чтою стрелочки рисовались, есть пакет XYpic, только я не помню, какие там команды :?

-- Вт мар 02, 2010 18:41:12 --

Кстати, тогда уж можно задаться вопросом, как $\{ 1, \ldots, m \}^n$ обходить, не обязательно при $n = 2,3$. И почему надо обязательно из середины начинать. Если с краю, то вроде как проще.

 
 
 
 Re: Обход ячеек пространства
Сообщение02.03.2010, 16:09 
Аватара пользователя
Для трёхмерного так, вроде бы, естественно и красивее. Спираль разворачиваем от середины, потом обвиваем по бокам, потом сворачиваем спираль к середине. И в аккурат рядом с серединой следующего слоя.
А в n-мерном пространстве по индукции. Обходим развёртку в n-1-мерном.

 
 
 [ Сообщений: 5 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group