Добре відомо, що людина на сітці під впливом алкоголю має рівний шанс піти в будь-якому доступному напрямку. Однак це твердження здорового глузду не належить до царства дуже маленьких п'яниць, поведінка яких дуже схожа на те, що вони беруть одразу кожен доступний шлях, і можливі шляхи, які вони проходять, можуть заважати один одному. Ваше завдання - відобразити можливі позиції такого квантового п’яниці після n
кроків.
Специфікація
Пияцтво, про яке йде мова, займає квадратну сітку, і його можна вважати 3-штатним стільниковим автоматом, що використовує сусідство фон Неймана (плюс-у формі), яке дотримується цих простих правил:
Empty
переходить до,Awake
якщо він суміжний точно з однимAwake
, інакше переходить доEmpty
Awake
йде наSleeping
Sleeping
йде наSleeping
Початковий стан дошки - це єдине Awake
оточене нескінченним полем Empty
s.
Виклик
Давши негативне ціле число n
, створіть подання ASCII п'яниці після n
кроків. Кожен стан повинен бути представлений різним характером, а рішення повинні визначати, який символ означає, який стан. Якщо ви використовуєте пробіли для Empty
, вам не потрібно включати запуск їх у кінці рядка.
Це код-гольф , тому найкоротша відповідь виграє. Застосовуються стандартні лазівки , дозволена пробільна та кінцева пробіли, дозволено вихід масиву рядків / двовимірний масив тощо.
Приклади
Ці приклади використовуються для
Empty
, @
для Awake
та #
для Sleeping
.
n=0
@
n = 1
@
@#@
@
n = 2
@
#
@###@
#
@
n = 3
@
@#@
@ # @
@#####@
@ # @
@#@
@
n=6
@
#
@###@
@#@
@ ### @
#@# # #@#
@###########@
#@# # #@#
@ ### @
@#@
@###@
#
@
n=10
@
#
@###@
@#@
###
# # #
#######
# ### #
@ ## ### ## @
#@# ### # ### #@#
@###################@
#@# ### # ### #@#
@ ## ### ## @
# ### #
#######
# # #
###
@#@
@###@
#
@
Цікава примітка
Переглянувши послідовність кількості окупованих клітин в ОЕІС, я виявив, що квантовий п'яницю ізоморфний набагато краще вивченій послідовності зубочисток . Якщо ви зможете включити ці знання в кращий гольф, я буду вражений відповідним чином.
n=10
? Я спробував кілька підходів, і всі вони отримують однакову (неправильну) відповідь, тому просто хочу переконатися. Це виглядає трохи, але я не знаю.