Сотовые автоматы действительно очаровательны. Те, о которых обычно говорят, являются двоичными, то есть представляемыми числом. Тем не менее, те, на мой взгляд, были сделаны до смерти. Тройные CA более интересны, но мы должны рассмотреть все ASCII! Какое это может быть удовольствие!
Вместо того, чтобы выбирать набор правил для каждого символа, я буду использовать простое решающее правило, о котором я скоро расскажу. Чтобы принять решение о следующем поколении, мы смотрим на три «верхние» клетки, очень похожие на клеточные автоматы. Посмотрите на пример:
QWERTY
X Y Z
«Верх» Y- WERэто ячейки сверху и справа, сверху и сверху и слева. Y будет результатом функции, которую я собираюсь определить, которая является функцией для трехсимвольных строк. «Вершина» Xесть QW, или заполнение пространства в несуществующей / отсутствующую клетке .
Теперь для забавной функции! Я называю эту последовательность последовательностью XOROR по причине. Позвольте Aбыть верхним левым символом ячейки, Bбыть вышеуказанным кодексом ячейки, и Cбыть верхним правым символом ячейки. Затем полученная ячейка - это символ, чей код - (A XOR B) OR Cэто (A^B)|C. (Если результирующее значение больше 126, тогда оно установлено на (CHARCODE % 127) + 32. Ничего не делается, если значение меньше 32.) Вот пример начального числа Hello, World!:
S: Hello, World!
0: mmmo/c_ z}~)e
m = ( )^(H)|(e) = (32^72)|101 = 104|101 = 109 (m)
m = (H)^(e)|(l) = (72^101)|108 = 45|108 = 109 (m)
etc.
1: mmo/c_< +wl
2: mo/c_<c< + |;
3: o/c_<c ?+ g
4: oc_<c c??4+gg
5: 0_<c c 4+ o
6: _<c ccc4??ooo
7: c ccc4 ?o o
8: ccccc4w? pooo
9: cccc4w h o
A: ccc4wc hh ooo
B: cc4wc4kh ooo
C: c4wc4 #ooo o
D: wwc4w4#ooo oo
E: wc4wwc oo oo
F: w4wwc4oo oo o
G: wwwc4 oo oo
H: wwc4w4 oo oo
I: w4wwc4oooo oo
J: wwwc4 oo oo
K: wwc4w4oo oo o
L: wc4wwo oo oo
M: w4wwo8ooo oo
N: wwwo8 o oo o
O: wwo8w8oooo oo
И мы можем продолжить некоторое время после этого. Эта модификация строки называется последовательностью XOROR.
Цель Вы должны написать программу или функцию, которая выполняет одну из следующих задач:
- Учитывая строку
sи числоn >= 0, выведитеnзадана th-ю последовательность в последовательности XOROR с помощью seeds,n = 0являющейся первым преобразованием строки. - Для
sзаданной строки выведите (для программ) или сгенерируйте (для функций / генераторов) бесконечный поток последовательности XOROR с начальным числомs. Вы можете остановить, если последовательность повторяется, но это не обязательно.
s всегда будет состоять только из печатных символов ASCII, от пробела до тильды и табуляции (без перевода строки).
Это код-гольф , поэтому выигрывает самая короткая программа в байтах.
oделают это похоже на порыв зергов .
127%127+32==32.
n=0не оригинальная строка?
(d^!)|(space). Что касается второго вопроса, вы выполняете (CHAR%127)+32 после выполнения XOROR.


