2014 dxdy logo

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

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




Начать новую тему Ответить на тему На страницу Пред.  1, 2, 3, 4, 5  След.
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 17:01 
Заслуженный участник


20/08/14
11766
Россия, Москва
Soul Friend в сообщении #1426115 писал(а):
Ну напишите, пожалуйста, весь код с выборкой rule[] , чтобы уже поставить на этом всём жирную точку.
Уже писал, дважды:
post1425948.html#p1425948
post1425979.html#p1425979
Ну и для вычисления столбца L матрицы N и L не нужны, достаточно 9-ти (или даже 5-ти) столбцов M.

wrest в сообщении #1426125 писал(а):
Ну вот как раз там и видно. Посмотрите формулу что я сделал:
А можно не по Вашей формуле, а по его исходнику с if-ами? Т.е. в логике я не особо сомневаюсь, но вот по его куче if-ов этого не видно же, там ведь N[i-1,j] теоретически может принимать любые значения и if не сработать ... Вдруг Вы не так поняли что он хотел от третьей матрицы и формулу сделали немного не ту ... Хотя если результат совпадает для всех исходных вариантов, то конечно правильно, но интересно как это поняли, прямо из кучи if-ов или сначала восстановили его логику (как я про остальное).

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 17:16 


05/09/16
12058
Dmitriy40 в сообщении #1426128 писал(а):
А можно не по Вашей формуле, а по его исходнику с if-ами?

Ну я так и делал. Выписал что во что превращается, получилось
000 0
001 1
012 2
013 3
124 4
125 5
136 6
137 7
...
640 24 (6*4+0)
641 25 (6*4+1)
652 26 (6*4+2)
653 27 (6*4+3)
764 28 (6*4+4) тут вместо семерки берем 6-ку, т.е. из нечетных вычитаем единицу
765 29 (6*4+5)
776 30 (6*4+6)
777 31 (6*4+7

видно что средняя цифра -- не нужна.
Dmitriy40 в сообщении #1426128 писал(а):
теоретически может принимать любые значения и if не сработать ...
Да, но тогда никакое значение не присвоится обрабатываемой клетке, а случай когда никакой if не сработало, ТС-ом не предусмотрен. :mrgreen: Я, есличо, тоже жду от ТС-а пояснений, всё ещё.
Dmitriy40 в сообщении #1426128 писал(а):
Вдруг Вы не так поняли что он хотел от третьей матрицы и формулу сделали немного не ту ... Хотя если результат совпадает для всех исходных вариантов, то конечно правильно
Да, результат выходит точно тот же, что дают if-ы :mrgreen:
Dmitriy40 в сообщении #1426128 писал(а):
прямо из кучи if-ов или сначала восстановили его логику (как я про остальное).
Да, прямо оттуда. :facepalm:

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 17:25 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Предложенные последовательности удаляют из за отсутствия общего интереса, ну да ладно.
upd. неужели подобная генерация псевдослучайных чисел так уж и не представляет общего интереса?
И вообще в исследовании клеточных автоматов?

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 17:26 


05/09/16
12058
Soul Friend в сообщении #1426115 писал(а):
Ну напишите, пожалуйста, весь код с выборкой rule[] , чтобы уже поставить на этом всём жирную точку.
Мы (говорю и за Dmitry40) не уверены, что ваша программа вычисляет то, что вы хотите чтобы она вычисляла. А вы никак не сформулируете что именно вы вычисляете. Вычисления эти -- три строчки кода (ну, может, пять), но пока трудно понять что вам на самом деле надо.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 17:53 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Есть клетка А с некоторым состоянием, ноль или единица, её состояние определяет правило 30, то есть состояние трёх клеток сверху. Вот состояние этих трёх клеток перевожу в десятичное число и записываю в исходную, нижнюю клетку А, получается матрица N.
Потом беру одну клетку В из этой матрицы N и смотрю на три клетки которые над ней, так как эти три клетки образуются из пяти клеток сверху, то максимум $2^5$ разных состояния трех клеток получаются, все эти $2^5$ вариантов упорядочиваю по возрастанию отмечая их от нуля до тридцати одного, смотрю каким значениям соответствуют три клетки над В, и записываю их в В, получается матрица L.

-- 15.11.2019, 21:03 --

wrest в сообщении #1426131 писал(а):
Dmitriy40 в сообщении #1426128

писал(а):
теоретически может принимать любые значения и if не сработать ... Да, но тогда никакое значение не присвоится обрабатываемой клетке, а случай когда никакой if не сработало, ТС-ом не предусмотрен. :mrgreen: Я, есличо, тоже жду от ТС-а пояснений, всё ещё.

Про какие случаи Вы говорите, можно на примерах ?
Там ведь все случаи расписаны.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 18:28 


05/09/16
12058
Soul Friend в сообщении #1426138 писал(а):
Потом беру одну клетку В из этой матрицы N и смотрю на три клетки которые над ней,

На самом деле, вы смотрите не на три, а на две клетки, т.к. средняя клетка (непосредственно над обрабатываемой) в вычислениях по сути не участвует. Если скажем, левая клетка равна 4 а правая равна 2, то средняя может быть только 1, и тройка 412 у вас соответствует числу 18:
if(N[i-1,j-1]==4&&N[i-1,j]==1&&N[i-1,j+1]==2, L[i,j]=18);
То есть из троек 402 412 422 432 442 452 462 472 возможна только одна: 412. При любом другом значении средней клетки, у вас произойдёт незаметный сбой в программе, и значение в матрице L будет ошибочным (в случае PARI/GP -- нулём, а так может произвольным оказаться). Поэтому проверять надо первую цифру (4) и последнюю (2), а среднюю можно не проверять, и вот эта часть &&N[i-1,j]==1 у вас в коде лишняя.
Поэтому средняя клетка в вычислениях может не участвовать. Это вам понятно? Это то что вы хотели?

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 18:46 
Заслуженный участник


20/08/14
11766
Россия, Москва
wrest
Биг сорри. Я тормоз. Забыл что у него клетки перекрываются (ужас-ужас :facepalm:) и потому для xABCx по A и C однозначно восстанавливается B. Сорри за напряг, торможу (из-за кривизны десятичного представления у ТС).

Soul Friend в сообщении #1426132 писал(а):
неужели подобная генерация псевдослучайных чисел так уж и не представляет общего интереса?
ИМХО да, не представляет. Слишком сложно считается, зависимость неизвестна, хоть тесты и проходит, но гарантий нет. Зато есть много более простых и быстрых и надёжно исследованных генераторов. Потому и не интересно.
Про математическую сторону центрального столбца номера комбинации в десятичной форме сказать ничего не могу. Но не вижу никакого математического смысла в этом, т.е. нумерология. Но могу и чего-то не понимать.

-- 15.11.2019, 18:50 --

Soul Friend
Может быть вам было бы полезно вывести формулу для L[i] прямо от M[], без всяких промежуточных операций. Это по идее просто арифметика средней школы, даже не алгебра. Будет видно от чего она и как зависит. А уж как считать саму M[] - написано и нами тут, и в самой OEIS полно примеров программ вычисления автомата.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 18:55 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
wrest в сообщении #1426143 писал(а):
То есть из троек 402 412 422 432 442 452 462 472 возможна только одна: 412. При любом другом значении чредней клетки, у вас произойдёт незаметный сбой в программе, и значение в матрице L будет ошибочным (в случае PARI/GP -- нулём, а так может произвольным оказаться).

Возможны только 400, 401, 412, 413. Все они строго расписаны, откуда вы взяли 442, 452 и.т.д. ?
Я понимаю о чём вы, но вычисления будут те же, никаких ошибок, просто у вас код короче будет.
wrest в сообщении #1426131 писал(а):
640 24 (6*4+0)
641 25 (6*4+1)
652 26 (6*4+2)
653 27 (6*4+3)
764 28 (6*4+4) тут вместо семерки берем 6-ку, т.е. из нечетных вычитаем единицу
765 29 (6*4+5)
776 30 (6*4+6)
777 31 (6*4+7
видно что средняя цифра -- не нужна.

Вот это хорошее наблюдение.
Тему можно закрывать.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 19:15 
Заслуженный участник


20/08/14
11766
Россия, Москва
По моему для конкретно правила 30 код сворачивается в один цикл вычисления следующего состояния автомата (одна строка из трёх операций, есть в примерах в OEIS, спасибо wrest за подсказку) и преобразования центральных (пяти?) бит в число центрального столбца L. Т.е. на получение одной итерации надо грубо говоря всего две несложных формулы. Без всяких if. И все коды выше в теме выкинуть. ;-)
Проверил скорость, без преобразования M в L одна только M миллион итераций вычисляется на PARI за 52с. Сто тысяч итераций за 1.7с. С вычислением столбца L (спасибо wrest за формулу) время растёт до 72с и 2.1с соответственно.

ИМХО, если бы в центральных битах была бы периодичность (или вообще закономерность), её бы давно заметили. Математическими преобразованиями периодичность не появится, закономерность - не знаю, смотрите конечно. Только смотреть придётся миллионы итераций, более короткие уже бы заметили (тоже сугубо ИМХО).

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 19:48 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Soul Friend в сообщении #1426132 писал(а):
неужели подобная генерация псевдослучайных чисел так уж и не представляет общего интереса?

Каковы затраты на вычисление 100 случайных значений после первого миллиарда (и это мало)?...

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 20:00 
Аватара пользователя


12/10/16
637
Almaty, Kazakhstan
Geen
Это риторический вопрос, или мне электроэнергию посчитать?
Dmitriy40 в сообщении #1426146 писал(а):
ИМХО да, не представляет. Слишком сложно считается, зависимость неизвестна, хоть тесты и проходит, но гарантий нет. Зато есть много более простых и быстрых и надёжно исследованных генераторов. Потому и не интересно.

Удовлетворительно.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 20:27 


05/09/16
12058
Dmitriy40 в сообщении #1426150 писал(а):
По моему для конкретно правила 30 код сворачивается в один цикл вычисления следующего состояния автомата (одна строка из трёх операций, есть в примерах в OEIS, спасибо wrest за подсказку) и преобразования центральных (пяти?) бит в число центрального столбца L.

Да, надо теперь заставить ТС-а всё это вывести :mrgreen: и сократить программу до одной строки.

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 20:40 
Заслуженный участник
Аватара пользователя


01/09/13
4656
Soul Friend в сообщении #1426159 писал(а):
Это риторический вопрос, или мне электроэнергию посчитать?

Нет, это очень практический вопрос. А считают память и время. И очень жаль, что Вы это не знаете...

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 20:47 
Заслуженный участник


20/08/14
11766
Россия, Москва
Geen в сообщении #1426157 писал(а):
Soul Friend в сообщении #1426132 писал(а):
неужели подобная генерация псевдослучайных чисел так уж и не представляет общего интереса?
Каковы затраты на вычисление 100 случайных значений после первого миллиарда (и это мало)?...
По моему ограничиваются скоростью памяти, миллиард итераций потребует два миллиарда битов для хранения состояния, это 250МБ. Если делать тупо (с расчётом что эти 100 чисел не последние и понадобятся ещё следующие), то надо прочитать и записать обратно 25ГБ данных (100 итераций), это примерно пара секунд, вычисления займут на порядки меньше времени.
Если известно что запрошено будет не более скажем миллиона чисел, то не надо пересчитывать все 250МБ, можно ограничиться лишь центральными 250КБ (2 миллиона битов), это влезет в L2 кэш процессора (а он работает на частоте процессора) и скорость выдачи чисел будет определяться скоростью вычислений. Вычисление одной итерации требует одного чтения памяти, одной записи памяти, двух сдвигов, двух логических операций - итого в потоке в среднем по такту (все указанные операции могут выполниться параллельно) на каждое слово процессора. 250КБ это 8К слов x86, ну вот можете считать что 10000 циклов процессора хватит на одну итерацию. И миллиона циклов на все 100 Ваших чисел. Порядка 0.3мс (для 3ГГц процессора) на всё. На AVX можно и ускорить до двух тактов (сдвиги не параллелятся) на слово 256 битов, или примерно вчетверо. На AVX512 вероятно ещё вдвое-вчетверо (там регистры шире и есть удобные команды). Что будет после компилятора С - увольте, диапазон значений от нескольких (один-два вряд ли получатся, скорее ближе к десятку) тактов на слово до сотен тактов, оптимизаторы ещё не настолько хороши, имхо.

-- 15.11.2019, 20:49 --

wrest
Заметьте, тема в разделе математики, а не помощи с программой, там бы может и выдали прям совсем готовую. Потому мои сообщения на 70% офтоп. :-(

 Профиль  
                  
 
 Re: Четыре оттенка нуля или 5-ти битное кодирование в ЭКА
Сообщение15.11.2019, 21:05 
Заслуженный участник


27/04/09
28128
Dmitriy40 в сообщении #1426146 писал(а):
Про математическую сторону центрального столбца номера комбинации в десятичной форме сказать ничего не могу. Но не вижу никакого математического смысла в этом, т.е. нумерология. Но могу и чего-то не понимать.
Тут можно сказать вот что: пусть есть исходный клеточный автомат А и результат подобной «агрегации $m$ соседей» Б (здесь $m = 3$); притом я не буду говорить ни о каких системах счисления: если в клетках автомата А элементы $S$, в клетках Б элементы $S^m$ и всё.

Тогда если например правило А требует знать много соседей со всех сторон клетки чтобы посчитать её новое значение, при правильном выборе агрегации для Б мы можем получить правило, требующее только непосредственных соседей и не более. Но во-первых в данном случае толку в этом нет, потому что и так требуются лишь непосредственные, и во-вторых правило для Б будет всегда как минимум на первый взгляд сложнее для анализа (это функция с бо́льшими областями определения и значений). Может быть слааабенькая надежда на то, что некоторые рассуждения для правила Б будут проще, и тогда если мы установим, что центральный столбец Б предельно периодичен, то же автоматически последует для А (если мы назвали центральным столбцом Б правильный). Всё же вердикт действительно такой, что a priori никакой пользы не видно.

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 63 ]  На страницу Пред.  1, 2, 3, 4, 5  След.

Модераторы: Модераторы Математики, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group