2014 dxdy logo

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

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




Начать новую тему Ответить на тему
 
 Кубооктаэдр, такой себе...
Сообщение26.11.2022, 23:33 


29/05/12
238
День добрый!
Буду признателен за помощь!

Сын из школы программирования принес задачу.
Я понимаю, что предварительно нужно понять математическую сторону задачи, остальное доделает сам. Решил помочь, а не получается.
Задача ясна прямо из картинки. Наращиваем кубики, нужно посчитать общее число на $\boldsymbol{k}$-ой итерации:

Изображение

Рассуждал так:
Фигура - симметричная. Сначала разберемся с центральным слоем.
1) При степени фигуры $0$ имеем $1$ кубик.
2) На первой итерации центральный кубик обрастает, а центральный слой представляет сообой крест из $5$ кубиков,
3) На второй итерации имеем $13$ кубиков
4) На следующей имеем $25$
То есть, имеем последовательность чисел кубиков в центральном слое при "обрастании":
$1$

$1+4$

$1+4+8$

$1+4+8+12$

Может быть, это не совсем строго :oops: , но легко увидел, по какому закону растет это число:

$S(k)=1+k(k+1)2$, где $k$-"степень" слоя.

Очевидно, что следующие слои (сверу и снизу от центрального и далее к полюсам) растут в соответсвии с той же последовательностью, но с запаздываением на одну итерацию. И число таких слоев есть $2k$
Пусть номер итерации для следуюшего слоя - $l$. Тогда число кубиков в этом слое

$S(l)=1+l(l+1)2$, где $l$-"степень" слоя.

"Степени" слоев связаны соотношением:

$l=k-1$

Тогда в ближайжайшем слое от центрального и в в следующем будет кубиков:

$S(k)=1+(k-1)k\cdot2$

$S(k)=1+(k-2)(k-1)2$

$\vdots$

Понятное дело, каждого слоя - по два, за исключением центрального. И так далее...
Вот тут дальше не представляю как правильно и строго считать.

Не судите строго, т.к. по своей специальности я - не математик :-)

Спасибо!

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение26.11.2022, 23:41 
Аватара пользователя


11/06/12
10363
стихия.вздох.мюсли

(Оффтоп)

Убил бы того, кто неуместно употребляет здесь термин «кубоктаэдр». Он хоть сам кубоктаэдр видел? Не думаю.

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение26.11.2022, 23:45 


29/05/12
238
согласен!
поэтому тему топика так и назвал - такой себе...

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение27.11.2022, 00:23 
Заслуженный участник
Аватара пользователя


16/07/14
7085
Цюрих
Понятие декартовых координат уже известно? Если да, то можно заметить что на $k$-м шаге добавляются ровно кубики с координатами, удовлетворяющими равенству $|x| + |y| + |z| = k$, и, немного повозившись с арифметическими прогрессиями, посчитать.

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение27.11.2022, 07:31 
Заслуженный участник
Аватара пользователя


23/08/07
5188
Нов-ск
kda_ximik в сообщении #1571590 писал(а):
$S(k)=1+(k-1)k\cdot2$
Для суммирования $S(k)$ запишите так
$$(k-1)k=\frac{(k+1)k(k-1)}{3}-\frac{k(k-1)(k-2)}{3}$$

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение01.12.2022, 15:20 


06/01/09
231
В принципе можно же и не суммировать самому, это ж задача по программированию. Может преподаватель как раз хочет, чтобы цикл для суммирования написали?

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение15.12.2022, 20:14 
Экс-модератор
Аватара пользователя


23/12/05
11957
Мне кажется, что, поскольку это задача по программированию, а не по математике, то и решать ее надо "по-программистски" - хранить в каком-то виде массив кубиков с их положениями в пространстве. На каждой следующей итерации проверять, какие грани у кубиков открытые и долепливать к ним новые кубики. Вывод общей математической формулы и простое вбивание ее в виде кода программы, конечно, вычислительно эффективнее, но не несет никакой пользы с точки зрения обучения программированию.

 Профиль  
                  
 
 Re: Кубооктаэдр, такой себе...
Сообщение15.12.2022, 22:31 
Экс-модератор
Аватара пользователя


23/12/05
11957
Либо, действительно, считать просто по слоям в цикле, без заморочек с гранями. На каждой итерации появляется два новых слоя размером в один кубик, а каждый имеющийся слой обрастает "квадратом из кубиков" с длиной стороны на 1 больше, чем в предыдущей итерации, то есть с периметром-числом кубиков на 4 больше. Создаем вектор пар, где первое число пары отвечает за число кубиков в слое, второе - за число добавишихся на предыдущей итерации. Для нулевого уровня пара примет вид (1,0), а дальше в цикле для каждого элемента вектора увеличиваем второй элемент на 4 и получившееся значение прибавляем к первому, после того, как проделали это для всех пар, добавляем еще две новых пары-слоя (1,0). По выходу из цикла считаем сумму первых элементов в векторе. В силу симметрии, можно добавлять не по два слоя на каждой итерации, а по одному, но после выхода из цикла суммировать с удвоением всех чисел, кроме 0го, соответствующего центральному слою.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 8 ] 

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: Ende, HungryLion, wrest


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group