Обновить
142
Сергей Герасимов@xcont

Пользователь

72
Подписчики
Отправить сообщение
Скажите, а для подготовки всего что выложили, вы реально использовали JS, или у вас есть аппаратно ускоренная реализация?

На чистом JS. Выкладываю пример для картинки «habr».

Здесь считает.
Запуск производится через консоль. Пишем в консоль evil(3000); и поехали. Туда же, в консоль, записываются массивы для «тепловой карты».
Считал в FireFox. Если считать автоматы с большим полем — Chrome перестает подавать признаки жизни. В FireFox появляется кнопка «Остановить это».

Здесь смотрим, что насчитало.
Тогда могу предложить реализовать затухающую яркость. Если состояние клетки не изменилось — она тускнеет.

Заставка из фильма

У меня учебное пособие есть :)

Тогда припадок может случиться не только у эпилептиков.
Два варианта сделал:
1. Цвет движется вместе со слоем.
2. Цвет каждого соответствующего слоя не меняется.



Заголовок спойлера



Можно. На вход даем двоичную последовательность. Эту последовательность можно составить комбинаторно — копируя, инвертируя и переставляя биты. На бильярдах это легко показать, но это тема для отдельной статьи.

Например, последовательность floor(n(sqrt(5)+1)%2, для n=1, 2, 3, ...:
10100101101001011010110100101101001010010110100101101011010010110100101…

Можно строить рекурсивно, не вычисляя квадратные корни и остатки от деления:
function invers(array){ //инвертируем биты
	var temp=[];
	var size=array.length;
	for(var i=0; i<size; i++){
		if(array[i]==0)
			temp[i]=1;
		else
			temp[i]=0;
	}
	return temp;
}
function revers(array, s){ //берем последние s бит в обратном порядке
	var temp=[];
	var size=array.length;
	for(var i=0; i<s; i++) temp[i]=array[size-i-1];
	return temp;
}
function seqence(fn, fn1){ //fn и fn1 - числа Фибоначчи F(n) и F(n-1)
	if(fn1==3) return [1];
	fn1=fn-fn1;
	fn=fn-fn1;
	var array=seqence(fn, fn1); //рекурсия
	var a0=invers(array); //инвертированные биты
	var a1=[];
	if(fn1%2==0) a1=[1]; //добавляем "1" бит, если F(n-1) четное
	var a2=revers(array, Math.floor((fn-fn1)/2)); //биты в обратном порядке
	return a0.concat(a1, a2);
}
console.log((seqence(610, 377)).join(''));
n*Pi:



n*e (число Эйлера):

Почта от провайдера

До сих пор пользуюсь почтой dial-up провайдера, зарегистрированной в 2002-ом году.
Глава I. Рис. 8 напомнил игру:



Спрятал «проблемные» картинки под спойлер.
Минутка злости
Ссылки в статье заработают, когда хостер праздновать закончит.


У меня в статье такие паттерны (если голову на 45° наклонить)
Категорически вас приветствую, поздравляю с написанием первой статьи на Хабре и получением приглашения в наше скромное сообщество.
Чтобы получить бинарную матрицу, вариант «не идёт*(-)» можно отбросить. Не идет только в тех случаях, если стороны прямоугольника x и y не являются взаимно простыми числами. Фактически, если убрать все варианты, когда «идет» и оставить только те, когда «не идет» — получим таблицу взаимно простых чисел:


(минусами отмечены числа, имеющие общий делитель)

Таблица взаимно простых чисел сама по себе очень интересная и ее можно разглядывать часами (начало координат — левый верхний угол):



600х600:



но в нашем случае, от нее лучше избавиться, чтобы она не мешала нам в поиске закономерности.

Эти соотношения сторон (не взаимно простые) можно сократить на общий делитель, чтобы получить взаимно простые числа. Например, 6 и 8 можно сократить на общий делитель 2 и получить паттерн 3х4 (или же сделать штрих размером в 2 клетки и получить тот же паттерн):



Конечно, останутся случаи, когда одна (или обе) из сторон сокращается до 1 — если одна из сторон является делителем другой (или они равны). Будем считать эти случаи неизбежным злом :)

Все паттерны для прямоугольников со сторонами от 1 до 16:



В виде графика (начало координат — левый верхний угол):

Вопрос в том, насколько сложно будет его обратно свернуть перед дальним плаванием.

Информация

В рейтинге
6 054-й
Откуда
Киев, Киевская обл., Украина
Дата рождения
Зарегистрирован
Активность