2014 dxdy logo

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

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




 
 Игра "жизнь" на бесконечной ленте
Сообщение01.04.2011, 18:01 
Аватара пользователя
Попалась тут одна задачка.

Имеется лента, разделённая на клетки и простирающаяся влево и вправо до бесконечности.
На ленте живёт колония амёб: в каждой клетке в каждый момент времени находится 0 или более живых амёб.
В начале времён бог создал на ленте некоторую конечную (непустую) колонию.
Каждое следующее поколение рассчитывается по следующим правилам:
1) Если в любой клетке колонии не более одной амёбы, то бог велит делиться, и вся колония приступает к делению (см. п. 2). Если хотя бы одна клетка содержит 2 или более амёб, бог молчит, амёбы не делятся, но, наоборот, происходит уменьшение популяции (см. п. 3).
2) Делятся одновременно все амёбы, одна из них остаётся в своей клетке, вторая перемещается на клетку правее. Кроме того, бог создаёт ещё одну амёбу и помещает её в самую левую населённую клетку колонии (левее которой клетки не содержат живых амёб). Таким образом, в этой самой левой клетке оказывается 2 амёбы.
3) Если в клетке более одной амёбы, то одна перемещается на клетку правее, вторая погибает, остальные образуют споры и выживают.
Примечание: на следующем шаге споры уже ведут себя, как обычные амёбы: могут делиться, перемещаться и погибать в соответствии с правилами.

Пример (многоточия обозначают бесконечную последовательность пустых клеток):
Начальная позиция: ...,1,3,2,1,...
Уменьшение колонии: ...,1,1,1,2,...
Уменьшение колонии: ...,1,1,1,0,1,...
Бог велел делиться: ...,2,2,2,1,1,1,...
Уменьшение колонии: ...,1,1,2,1,1,...
Уменьшение колонии: ...,1,1,0,2,1,...

А) Доказать, что всегда наступит момент времени, в который от любой колонии останется лишь одна амёба.
Б) Доказать, что число амёб в любой колонии росло бы неограниченно, если бы на 2-м шаге бог не вмешивался в процесс деления.

 
 
 
 
Сообщение02.04.2011, 07:37 
Аватара пользователя
Если поле развернуть справа налево, то можно заметить обычные операции над двоичными числами. В частности, команда делиться - это умножение на $2$ (сложение с собой) плюс увеличение младшего из ненулевых разрядов на $1$ (в десятичном случае этому соответствовало бы: $220 \cdot 2 + d = 440 + 10 = 450$, следующее деление приведёт к: $450 \cdot 2 + d = 900 + 100 = 1000$). А уменьшение колонии - это просто побитовое вычисление значения этой операции, его в данном случае можно отбросить. Когда в одном из разрядов число, большее $1$ - это просто нестандартная запись двоичного числа, в процессе уменьшения колонии число будет нормализовано.

У Вас в первоначальном варианте ещё бактерии были, может поэтому имело место утверждение Б? Потому что сейчас на втором шаге стоит уменьшение колонии, да и запрет делиться ничего не изменит, если я ничего не упустил.

 
 
 
 
Сообщение02.04.2011, 09:19 
Тогда на задачу: $k$ нечетное - переходим в $3k+1$, $k$ - четное делим на 2.

 
 
 
 
Сообщение02.04.2011, 13:31 
Аватара пользователя
Null, раскусили :D

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


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