Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Программирование Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Swa111
Member

Откуда:
Сообщений: 202
mayton,

да на гите я есть, но пользуюсь редко

на сайте не сработал наверное из за того что там ограничение на число правил, не более 20. Либо там другой синтаксис

Пошаговый расчет можно получить и в моем интерпретаторе, просто в образцах справа задай не верные результат, тогда выдаст пошаговое выполнение.
29 май 20, 11:18    [22142068]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Я возьму с розетты еще одну реализацию чтоб уже работала без ограничений.
Кстати это хорошо что ты добавил каменты в рулы. Я тоже расширю этот убогий
язык для такой возможности.
29 май 20, 11:25    [22142071]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
палки в двоичную

0|| |0
0| 1
|| |0
| 1
29 май 20, 12:26    [22142121]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Aleksandr Sharahov,

спасибо Саш. Попробую.
29 май 20, 12:29    [22142126]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1543
mayton,

Да дело не в *|, а в 1/0. Первая часть переводит из в палки, вторая из палок. После первого преобразования из палки в 1/0 число тут же станет палкой.

Сообщение было отредактировано: 29 май 20, 12:54
29 май 20, 12:55    [22142164]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
crutchmaster,

замени палки на слеши
29 май 20, 13:04    [22142179]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
crutchmaster
Member

Откуда: оттуда.
Сообщений: 1543
Aleksandr Sharahov,

И что?

:start
1->|
...
|->1 //goto :start

1/0 не на что заменить они должны быть в выхлопе.

Сообщение было отредактировано: 29 май 20, 13:05
29 май 20, 13:07    [22142181]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
//правила
  ('+','<^>'),
  ('1<','<3'),
  ('0<','<2'),
  ('<',''),
  ('>1','3>'),
  ('>0','2>'),
  ('>',''),
  ('|2','2||'),
  ('3','2|'),
  ('2',''),
  ('^',''),
  ('0||','|0'),
  ('0|','1'),
  ('||','|0'),
  ('|','1')

//выхлоп
101+11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33
2|23^33
22||3^33
22||2|^33
22|2|||^33
222|||||^33
222|||||^2|3
222|||||^2|2|
222|||||^22|||
22|||||^22|||
2|||||^22|||
|||||^22|||
|||||^2|||
|||||^|||
||||||||
|0||||||
||0||||
|||0||
||||0
|0||0
||00
|000
1000
29 май 20, 13:37    [22142210]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Еще мысли. Утилитарные задачи. Не связанные с вычислениями а скорре так. Проблемы.

Например

1) Априорное знание алфавита. Если делать swap или движение какого-то символа в какую-то сторону
мы должны в левой части rules предусмотреть этот символ в сочетании со всеми возможными комбинациями.
Описать регулярку или мета-символ мы не можем. Господин Марков этого не предусмотрел. Следовательно
надо как-то опираться на область входных значений.

2) Утилитарные функции которые могут пригодится. Одну из них мы уже почти сделали. Это перевод
из двоички в унарность и обратно. Для комплекта хорошо-бы сделать тоже самое для десятичной.
Шестнадцатеричная из двоичной переводится тривиально. Плюс четыре базовых арифметических
операции.

Я думаю гуглёж всегда помогает - но прошу тех кто уже нагуглил - не спойлерите а дайте ребятам
возможность самим подумать. Я думаю 1-2 недели - это нормальный строк для этого топика.
29 май 20, 14:55    [22142271]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
mayton,

мое умножение и вычитание под спойлером, насчет деления не ясно, куда девать остаток
+

//умножение
('*','<^>'),
('1<','<3'),
('0<','<2'),
('<',''),
('>1','3>'),
('>0','2>'),
('>',''),
('|2','2||'),
('3','2|'),
('2',''),
('|^','^='),
('^',''),
('=|','|/='),
('=/','/='),
('|',''),
('=',''),
('0//','/0'),
('0/','1'),
('//','/0'),
('/','1')

//пример умножения
101*11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33
2|23^33
22||3^33
22||2|^33
22|2|||^33
222|||||^33
222|||||^2|3
222|||||^2|2|
222|||||^22|||
22|||||^22|||
2|||||^22|||
|||||^22|||
|||||^2|||
|||||^|||
||||^=|||
|||^==|||
||^===|||
|^====|||
^=====|||
=====|||
====|/=||
===|/=/=||
==|/=/=/=||
=|/=/=/=/=||
|/=/=/=/=/=||
|/=/=/=/=/|/=|
|/=/=/=/=/|/|/=
|//==/=/=/|/|/=
|//=/==/=/|/|/=
|///===/=/|/|/=
|///==/==/|/|/=
|///=/===/|/|/=
|////====/|/|/=
|////===/=|/|/=
|////===/|/=/|/=
|////==/=|/=/|/=
|////==/|/=/=/|/=
|////=/=|/=/=/|/=
|////=/|/=/=/=/|/=
|/////=|/=/=/=/|/=
|/////|/=/=/=/=/|/=
|/////|//==/=/=/|/=
|/////|//=/==/=/|/=
|/////|///===/=/|/=
|/////|///==/==/|/=
|/////|///=/===/|/=
|/////|////====/|/=
|/////|////===/=|/=
|/////|////===/|/=/=
|/////|////==/=|/=/=
|/////|////==/|/=/=/=
|/////|////=/=|/=/=/=
|/////|////=/|/=/=/=/=
|/////|/////=|/=/=/=/=
|/////|/////|/=/=/=/=/=
|/////|/////|//==/=/=/=
|/////|/////|//=/==/=/=
|/////|/////|///===/=/=
|/////|/////|///==/==/=
|/////|/////|///=/===/=
|/////|/////|////====/=
|/////|/////|////===/==
|/////|/////|////==/===
|/////|/////|////=/====
|/////|/////|/////=====
/////|/////|/////=====
//////////|/////=====
///////////////=====
///////////////====
///////////////===
///////////////==
///////////////=
///////////////
/0/////////////
//0///////////
///0/////////
////0///////
/////0/////
//////0///
///////0/
///////1
/0/////1
//0///1
///0/1
///11
/0/11
/111
1111


//вычитание
('-','<^>'),
('1<','<3'),
('0<','<2'),
('<',''),
('>1','3>'),
('>0','2>'),
('>',''),
('|2','2||'),
('3','2|'),
('2',''),
('|^|','^'),
('|^','|'),
('0||','|0'),
('0|','1'),
('||','|0'),
('|','1'),
('^1','.-1'), //точка означает терминальную операцию
('^','0')

//пример вычитания
101-111
101<^>111
10<3^>111
1<23^>111
<323^>111
323^>111
323^3>11
323^33>1
323^333>
323^333
2|23^333
22||3^333
22||2|^333
22|2|||^333
222|||||^333
222|||||^2|33
222|||||^2|2|3
222|||||^22|||3
222|||||^22|||2|
222|||||^22||2|||
222|||||^22|2|||||
222|||||^222|||||||
22|||||^222|||||||
2|||||^222|||||||
|||||^222|||||||
|||||^22|||||||
|||||^2|||||||
|||||^|||||||
||||^||||||
|||^|||||
||^||||
|^|||
^||
^|0
^10
-10
29 май 20, 16:42    [22142346]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Aleksandr Sharahov,

ого
29 май 20, 16:49    [22142351]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Swa111
Member

Откуда:
Сообщений: 202
Измененный алгоритм, число слагаемых может быть любым. На больших числах выигрывает по скорости счету на "счетных палочках".

+
'Закидываем сразу символ конца расчета за +
+ -> ?e

'Двигаем очередной знак вправо
0>0 -> 00>
0>1 -> 10>
1>0 -> 01>
1>1 -> 11>

'выполняем сложение
00>e -> $e0
01>e -> $e1
10>e -> $e1
11>e -> ~$e0

#1>e -> #$e1
#0>e -> #$e0

'Увеличиваем правую часть при переполнении
1~ -> ~0
0~ -> 1
#~ -> #1

'Сложение завершено идем за следующим знаком
1$ -> $1
0$ -> $0

'Забираем очередной знак
0#$ -> #0>
1#$ -> #1>

#$e |-> 

e#$ -> #$

'правая часть больше левой 
#$ -> 

'Двигаем символ конца расчетов
e1 -> 1e
e0 -> 0e

'Символ конца на месте, начинаем счет
? -> #$

'Конец
e |-> 


Пример 1+11+100+10 ==> 1010
+

+ -> ?e      : 1?e11+100+10
+ -> ?e : 1?e11?e100+10
+ -> ?e : 1?e11?e100?e10
e1 -> 1e : 1?1e1?e100?e10
e1 -> 1e : 1?11e?e100?e10
e1 -> 1e : 1?11e?1e00?e10
e1 -> 1e : 1?11e?1e00?1e0
e0 -> 0e : 1?11e?10e0?1e0
e0 -> 0e : 1?11e?100e?1e0
e0 -> 0e : 1?11e?100e?10e
? -> #$ : 1#$11e?100e?10e
1#$ -> #1> : #1>11e?100e?10e
1>1 -> 11> : #11>1e?100e?10e
1>1 -> 11> : #111>e?100e?10e
11>e -> ~$e0 : #1~$e0?100e?10e
1~ -> ~0 : #~0$e0?100e?10e
#~ -> #1 : #10$e0?100e?10e
0$ -> $0 : #1$0e0?100e?10e
1$ -> $1 : #$10e0?100e?10e
#$ -> : 10e0?100e?10e
e0 -> 0e : 100e?100e?10e
? -> #$ : 100e#$100e?10e
e#$ -> #$ : 100#$100e?10e
0#$ -> #0> : 10#0>100e?10e
0>1 -> 10> : 10#10>00e?10e
0>0 -> 00> : 10#100>0e?10e
0>0 -> 00> : 10#1000>e?10e
00>e -> $e0 : 10#10$e0?10e
0$ -> $0 : 10#1$0e0?10e
1$ -> $1 : 10#$10e0?10e
0#$ -> #0> : 1#0>10e0?10e
0>1 -> 10> : 1#10>0e0?10e
0>0 -> 00> : 1#100>e0?10e
00>e -> $e0 : 1#1$e00?10e
1$ -> $1 : 1#$1e00?10e
1#$ -> #1> : #1>1e00?10e
1>1 -> 11> : #11>e00?10e
11>e -> ~$e0 : #~$e000?10e
#~ -> #1 : #1$e000?10e
1$ -> $1 : #$1e000?10e
#$ -> : 1e000?10e
e0 -> 0e : 10e00?10e
e0 -> 0e : 100e0?10e
e0 -> 0e : 1000e?10e
? -> #$ : 1000e#$10e
e#$ -> #$ : 1000#$10e
0#$ -> #0> : 100#0>10e
0>1 -> 10> : 100#10>0e
0>0 -> 00> : 100#100>e
00>e -> $e0 : 100#1$e0
1$ -> $1 : 100#$1e0
0#$ -> #0> : 10#0>1e0
0>1 -> 10> : 10#10>e0
10>e -> $e1 : 10#$e10
0#$ -> #0> : 1#0>e10
#0>e -> #$e0 : 1#$e010
1#$ -> #1> : #1>e010
#1>e -> #$e1 : #$e1010
#$e -> : 1010


110101+110 ==> 111011
+
+ -> ?e      : 110101?e110
e1 -> 1e : 110101?1e10
e1 -> 1e : 110101?11e0
e0 -> 0e : 110101?110e
? -> #$ : 110101#$110e
1#$ -> #1> : 11010#1>110e
1>1 -> 11> : 11010#11>10e
1>1 -> 11> : 11010#111>0e
1>0 -> 01> : 11010#1101>e
01>e -> $e1 : 11010#11$e1
1$ -> $1 : 11010#1$1e1
1$ -> $1 : 11010#$11e1
0#$ -> #0> : 1101#0>11e1
0>1 -> 10> : 1101#10>1e1
0>1 -> 10> : 1101#110>e1
10>e -> $e1 : 1101#1$e11
1$ -> $1 : 1101#$1e11
1#$ -> #1> : 110#1>1e11
1>1 -> 11> : 110#11>e11
11>e -> ~$e0 : 110#~$e011
#~ -> #1 : 110#1$e011
1$ -> $1 : 110#$1e011
0#$ -> #0> : 11#0>1e011
0>1 -> 10> : 11#10>e011
10>e -> $e1 : 11#$e1011
1#$ -> #1> : 1#1>e1011
#1>e -> #$e1 : 1#$e11011
1#$ -> #1> : #1>e11011
#1>e -> #$e1 : #$e111011
#$e -> : 111011
29 май 20, 17:36    [22142376]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Aleksandr Sharahov

101*11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33



Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет
одни цифры на другие. И знак * наверное можно было сохранить.
29 май 20, 18:26    [22142397]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
mayton
Aleksandr Sharahov

101*11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33



Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет
одни цифры на другие. И знак * наверное можно было сохранить.


Дык это легко поверить, достаточно убрать "ненужное" )
29 май 20, 18:49    [22142410]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
Swa111,

правильно ли я понял, что в твоей реализации
количество правил зависит от количества бит в наибольшем слагаемом?
29 май 20, 19:01    [22142413]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Aleksandr Sharahov
mayton
пропущено...


Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет
одни цифры на другие. И знак * наверное можно было сохранить.


Дык это легко поверить, достаточно убрать "ненужное" )

Нет. Я понимаю что мы подготавливаем почву для других расчетов. Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".
29 май 20, 19:28    [22142426]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
mayton
Aleksandr Sharahov
пропущено...


Дык это легко поверить, достаточно убрать "ненужное" )

Нет. Я понимаю что мы подготавливаем почву для других расчетов. Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".


Ну, мне так проще конструировать алгоритм:
мы таким образом гарантируем, что входные символы не пересекаются с выходными,
и, тем самым, при формировании результата не будет срабатываний замен из начала списка,
которые испортят всю малину.
29 май 20, 20:14    [22142458]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Swa111
Member

Откуда:
Сообщений: 202
Aleksandr Sharahov,

Нет, число правил одинаковое для чисел любой разрядности.

Алгоритм умножения чисел в столбик. Отчасти полагается на предыдущий алгоритм сложения нескольких чисел.
всего за каких то 9949 замен может перемножить числа 1000100111111000 на 1000110101111101
+
* -> ME

'E всегда идет в конце слова
E0 -> 0E
E1 -> 1E
'где потом мельчает
E -> e

'Гонцы тоже идут в конец слова
p0 -> 0p
p1 -> 1p
P0 -> 0P
P1 -> 1P

'Мутация гонца
1Pe -> |c1e1eA
0Pe -> |c0e0eA

'грузчик тащит копию цифры на право
1|c -> |11g
0|c -> |00g

0g0 -> 00g
0g1 -> 10g
1g0 -> 01g
1g1 -> 11g

'Сбрасывает свою цыфру и идет за следующей
0ge -> ce0
1ge -> ce1
0c -> c0
1c -> c1

'передает следующему
m|c -> mp

'Гонцы
'Умножить число слева на 2
0M -> mp
1M -> mP

'Умножение на 2
pe -> w0e

'Умножитель возвращается обратно
0w -> w0
1w -> w1
mw -> M

'Стираем последнее слагаемое оно больше не нужно
q1 -> q
q0 -> q
qe -> 
M -> q


'Двигаем очередной знак вправо для сложения
0>0 -> 00>
0>1 -> 10>
1>0 -> 01>
1>1 -> 11>

'выполняем сложение
00>e -> $e0
01>e -> $e1
10>e -> $e1
11>e -> ~$e0

A1>e -> A$e1
A0>e -> A$e0

'Увеличиваем правую часть при переполнении
1~ -> ~0
0~ -> 1
A~ -> A1

'Сложение завершено идем за следующим знаком
1$ -> $1
0$ -> $0


'Забираем очередной знак
0A$ -> A0>
1A$ -> A1>


'Набор правил что бы подчистить за собой
A$e0 -> A$e
A$e -> 
eA$ -> A
A1> -> 1
A0> -> 0
A -> A$


Обновил интерпретатор, исправлена ошибка с зависанием если ни одно правило не сработало.
Добавлено:
  • вывод статистики: шагов / замен.
  • "говорливый" режим выполнения, когда каждый шаг выводится в консоль
  • поддержка комментариев с символа #.
  • вывод правил, которые ни разу не использовались.

В архиве 2 батника. Использование: в проводнике перетащить файл с правилами на батник.

К сообщению приложен файл (nam.zip - 4Kb) cкачать
29 май 20, 20:39    [22142472]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
незамутненное преобразованиями систем счисления деление на палках
+
//деление 
  ('>|',  '|>'),
  ('>/',  '|-='),
  ('=|',  'i|='),
  ('=#',  '#|'),
  ('=',   '#|'),
  ('|i',  'i|'),
  ('|-i', '-'),
  ('|-|', '|-=|'),
  ('-|',  '-'),
  ('-i',  '-'),
  ('-#||', '.|'), //exit
  ('-#|',  '.0'), //exit
  ('',    '>')

//делим 7 на 3
|||||||/|||
>|||||||/|||
|>||||||/|||
||>|||||/|||
|||>||||/|||
||||>|||/|||
|||||>||/|||
||||||>|/|||
|||||||>/|||
||||||||-=|||
||||||||-i|=||
||||||||-i|i|=|
||||||||-i|i|i|=
||||||||-i|i|i|#|
||||||||-ii||i|#|
||||||||-ii|i||#|
||||||||-iii|||#|
|||||||-ii|||#|
||||||-i|||#|
|||||-|||#|
|||||-=|||#|
|||||-i|=||#|
|||||-i|i|=|#|
|||||-i|i|i|=#|
|||||-i|i|i|#||
|||||-ii||i|#||
|||||-ii|i||#||
|||||-iii|||#||
||||-ii|||#||
|||-i|||#||
||-|||#||
||-=|||#||
||-i|=||#||
||-i|i|=|#||
||-i|i|i|=#||
||-i|i|i|#|||
||-ii||i|#|||
||-ii|i||#|||
||-iii|||#|||
|-ii|||#|||
-i|||#|||
-|||#|||
-||#|||
-|#|||
-#|||
||
29 май 20, 22:07    [22142502]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
немного сократил
+
//деление 
  ('/',   '|-='),
  ('=|',  'i|='),
  ('=#',  '#|'),
  ('=',   '#'),
  ('|i',  'i|'),
  ('|-i', '-'),
  ('|-|', '|-=|'),
  ('-|',  '-'),
  ('-i',  '-'),
  ('-#|', '|'),
  ('-#',  '0')
29 май 20, 22:26    [22142507]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Aleksandr Sharahov
Member

Откуда: Москва
Сообщений: 1982
mayton
Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".


Кстати, легко доказать, что
если существуют НАМы для нескольких функций,
то существует НАМ для их суперпозиции.

Поэтому достаточно реализовать НАМы для унарной системы счисления,
т.к. у нас есть функции перевода в нее и обратно.
29 май 20, 23:21    [22142525]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Унарное вычитание
1-1 -> -
- -> 


Input: 11111-111

Output: 11
29 май 20, 23:46    [22142533]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
mayton
Member

Откуда: loopback
Сообщений: 48022
Aleksandr Sharahov
mayton
Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".


Кстати, легко доказать, что
если существуют НАМы для нескольких функций,
то существует НАМ для их суперпозиции.

Поэтому достаточно реализовать НАМы для унарной системы счисления,
т.к. у нас есть функции перевода в нее и обратно.


Я вот щас какраз думаю над композицией функций. У нас есть универсальный
аппарат. И есть уже кодовая база.

В функциональщине есть такая штука если есть f(x), g(x) функции то
f(g(x)) это некая новая функция которая последовательно применяет g а потом f.

Если бы не было терминального оператора |-> то мы могли-бы просто
копи-пастой формировать композиции алгоритмов Маркова просто
как плоский текст.

И если-бы не было пересечений алфавитов левых выражений rules.
30 май 20, 00:08    [22142536]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Swa111
Member

Откуда:
Сообщений: 202
перевод из десятичной в унарную
+

r1e -> ei
r0e -> eo

E0 -> 0E
E1 -> 1E
E2 -> 2E
E3 -> 3E
E4 -> 4E
E5 -> 5E
E6 -> 6E
E7 -> 7E
E8 -> 8E
E9 -> 9E

E -> e$

r00 -> 0r0
r01 -> 0r1
r0 -> r
r2 -> 1r0
r3 -> 1r1
r4 -> 2r0
r5 -> 2r1
r6 -> 3r0
r7 -> 3r1
r8 -> 4r0
r9 -> 4r1
r10 -> 5r0
r11 -> 5r1
r12 -> 6r0
r13 -> 6r1
r14 -> 7r0
r15 -> 7r1
r16 -> 8r0
r17 -> 8r1
r18 -> 9r0
r19 -> 9r1

G0e -> o
G1e -> i
G2 -> G1r0
G3 -> G1r1
G4 -> G2r0
G5 -> G2r1
G6 -> G3r0
G7 -> G3r1
G8 -> G4r0
G9 -> G4r1
G10 -> G5r0
G11 -> G5r1
G12 -> G6r0
G13 -> G6r1
G14 -> G7r0
G15 -> G7r1
G16 -> G8r0
G17 -> G8r1
G18 -> G9r0
G19 -> G9r1

i -> o|
|o -> o||
o -> 

$ |-> 

 -> GE


30 май 20, 00:11    [22142539]     Ответить | Цитировать Сообщить модератору
 Re: Четверговый НАМ и сложение двоичных чисел в строках  [new]
Swa111
Member

Откуда:
Сообщений: 202
Aleksandr Sharahov,

в делении наверное это правило лишнее
 ('-#',  '0')
30 май 20, 00:38    [22142547]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3 4 5   вперед  Ctrl      все
Все форумы / Программирование Ответить