Вполне возможно, что он просто действовал перебором
Состояние ячейки определяется состоянием пяти ячеек. Существует 32 комбинации состояний пяти ячеек:
00000
00001
…
11110
11111
Новая ячейка может принимать одно из трех состояний: стена, проход, рандом. Можно составить 3^32 таблицы. 3^32=1853020188851841 — это не очень много, но вручную такое количество не перебрать. Если, скажем, на просмотр каждой таблицы тратить одну секунду — понадобится (((1853020188851841/60)/60)/24)/365.25=58718666.4655 — чуть больше 58-ми миллионов лет.
SaveFrom — приложение, которое добавляет зеленую кнопку «скачать» на YouTube. Полгода пользовался этим приложением, пока однажды не заметил, что uBlock блокирует запросы с пустой html-страницы. Начал выяснять, где «вирус» подцепил. Оказалось, что SaveFrom имеет недокументированные возможности — отправляет на свой сервер информацию о всех посещенный страничках.
В тороидальной модели Вселенной есть одно любопытное свойство — существует четырехмерное пространство «внутри» тора (откуда происходит расширение) и «снаружи» тора (куда Вселенная расширяется). Пользуясь этим свойством, можно строить интересные и бредовые гипотезы. Например, в процессе расширения, массивные объекты, благодаря своей инертности, стремятся оставаться «внутри» четырехмерного пространства, в результате чего и происходит искривление трехмерного пространства (ОТО). Можно пойти дальше и предположить, что если в какой-то момент Вселенная перестанет расширяться — тогда исчезнет и гравитация :)
Все возможные состояния автомата можно представить в виде ориентированного графа, ребра которого — переход из одного состояния в другое. Если у каждой вершины не больше трех ребер (два входа, один выход или один вход и один выход) — тогда количество Садов Эдема совпадет с количеством вершин, у которых три ребра.
Для небольших колец, можно перебрать все возможные начальные состояния автомата, далее записать для них следующее состояние и тем самым отсеять те состояния, для которых не существует предыдущего состояния (Сады Эдема).
Говнокод:
var rule=[0,0,0,1,1,1,1,0];
var sizex=9;
var pow=2**sizex;
var arr=[];
for(var i=0;i<pow;i++) arr[i]=0;
var b, temp, q;
for(var i=0;i<pow;i++){
b=[];
var ii=i.toString(2);
for(var j=ii.length;j<sizex;j++) ii='0'+ii;
for(var j=0;j<sizex;j++) b[j]=ii[j]*1;
temp=[];
for(var x=0;x<sizex;x++){
xm=x-1;
if(xm<0) xm=sizex+xm;
xp=x+1;
if(xp>=sizex) xp=xp-sizex;
q=''+b[xm]+b[x]+b[xp];
q=parseInt(q, 2);
temp[x]=rule[q];
}
b=temp;
q=b[0];
for(var j=1;j<sizex;j++) q=(q<<1)+b[j];
arr[q]++;
}
console.log(arr.join(','));
var s0=0;
var s1=0;
var s2=0;
for(var i=0;i<pow;i++){
if(arr[i]==0) s0++;
if(arr[i]==1) s1++;
if(arr[i]>=2) s2++;
}
console.log(s0, s1, s2);
Результат:
Для кольца из 10-ти клеток существует 101 Сад Эдема.
Можно отметить все Сады Эдема для автоматов с правилами от 0 до 255 в кольце из 9-ти клеток (чтобы картинка влезла в комментарий). Далее сложить их стопочкой:
По оси X — все комбинации автомата с правилом, отмеченным по оси Y. Белый пиксель — Сад Эдема.
На второй картинке, белыми пикселями отмечены состояния, для которых существует только одно предыдущее состояние:
Правило 30 и эквивалентные ему: 86, 135 и 149. Эквивалентные — это инвертированные и зеркальные.
Еще одно правило с хаотичным средним столбцом — правило 45 и эквивалетные ему правила: 75, 89 и 101.
Можно ли по n-му числу найти предыдущее?
Одномерные клеточные автоматы первого порядка — необратимы. Для следующего состояния существует несколько возможных предыдущих.
Есть еще один интересный вопрос. Если рассматривать автомат в кольце (левая граница соединена с правой) — каждый столбец становится периодическим. Вопрос:
— Как длина периода зависит от размеров кольца?
В качестве примера, кольцо с десятью клетками:
Длина периода — 15.
Для первых 12-ти колец, длина периода: 0, 0, 0, 8, 5, 0, 4, 40, 72, 15, 154, 102
Здесь: hsl
После чего:
Здесь: rgb
Состояние ячейки определяется состоянием пяти ячеек. Существует 32 комбинации состояний пяти ячеек:
00000
00001
…
11110
11111
Новая ячейка может принимать одно из трех состояний: стена, проход, рандом. Можно составить 3^32 таблицы. 3^32=1853020188851841 — это не очень много, но вручную такое количество не перебрать. Если, скажем, на просмотр каждой таблицы тратить одну секунду — понадобится (((1853020188851841/60)/60)/24)/365.25=58718666.4655 — чуть больше 58-ми миллионов лет.
Давно у фотона масса появилась?
Также существует программа Orbitron, которая позволяет узнать, где пролетает (или пролетит в указанное время) спутник.
TLE для нее беру здесь: celestrak.
На любом сайте и даже в html-коде страниц.
Для небольших колец, можно перебрать все возможные начальные состояния автомата, далее записать для них следующее состояние и тем самым отсеять те состояния, для которых не существует предыдущего состояния (Сады Эдема).
Результат:
Для кольца из 10-ти клеток существует 101 Сад Эдема.
Можно отметить все Сады Эдема для автоматов с правилами от 0 до 255 в кольце из 9-ти клеток (чтобы картинка влезла в комментарий). Далее сложить их стопочкой:
По оси X — все комбинации автомата с правилом, отмеченным по оси Y. Белый пиксель — Сад Эдема.
На второй картинке, белыми пикселями отмечены состояния, для которых существует только одно предыдущее состояние:
Правило 30 и эквивалентные ему: 86, 135 и 149. Эквивалентные — это инвертированные и зеркальные.
Еще одно правило с хаотичным средним столбцом — правило 45 и эквивалетные ему правила: 75, 89 и 101.
Одномерные клеточные автоматы первого порядка — необратимы. Для следующего состояния существует несколько возможных предыдущих.
Есть еще один интересный вопрос. Если рассматривать автомат в кольце (левая граница соединена с правой) — каждый столбец становится периодическим. Вопрос:
— Как длина периода зависит от размеров кольца?
В качестве примера, кольцо с десятью клетками:
Длина периода — 15.
Для первых 12-ти колец, длина периода: 0, 0, 0, 8, 5, 0, 4, 40, 72, 15, 154, 102