powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Четверговый НАМ и сложение двоичных чисел в строках
25 сообщений из 107, страница 2 из 5
Четверговый НАМ и сложение двоичных чисел в строках
    #39963944
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mayton,

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

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

Пошаговый расчет можно получить и в моем интерпретаторе, просто в образцах справа задай не верные результат, тогда выдаст пошаговое выполнение.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39963947
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я возьму с розетты еще одну реализацию чтоб уже работала без ограничений.
Кстати это хорошо что ты добавил каменты в рулы. Я тоже расширю этот убогий
язык для такой возможности.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39963990
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
палки в двоичную

0|| |0
0| 1
|| |0
| 1
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39963993
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

спасибо Саш. Попробую.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964020
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

Да дело не в *|, а в 1/0. Первая часть переводит из в палки, вторая из палок. После первого преобразования из палки в 1/0 число тут же станет палкой.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964031
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
crutchmaster,

замени палки на слеши
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964033
Фотография crutchmaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

И что?

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

1/0 не на что заменить они должны быть в выхлопе.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964057
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
//правила
  ('+','<^>'),
  ('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
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964104
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще мысли. Утилитарные задачи. Не связанные с вычислениями а скорре так. Проблемы.

Например

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

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

Я думаю гуглёж всегда помогает - но прошу тех кто уже нагуглил - не спойлерите а дайте ребятам
возможность самим подумать. Я думаю 1-2 недели - это нормальный строк для этого топика.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964171
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964176
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov,

ого
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964195
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Измененный алгоритм, число слагаемых может быть любым. На больших числах выигрывает по скорости счету на "счетных палочках".

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
'Закидываем сразу символ конца расчета за +
+ -> ?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

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
+ -> ?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
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
+ -> ?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
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964209
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
101*11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33




Хм.. Это преобразование со стороны выглядит странно. Оно как будто-бы ничего не делает. Просто заменяет
одни цифры на другие. И знак * наверное можно было сохранить.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964215
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Aleksandr Sharahov

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
101*11
101<^>11
10<3^>11
1<23^>11
<323^>11
323^>11
323^3>1
323^33>
323^33




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


Дык это легко поверить, достаточно убрать "ненужное" )
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964217
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Swa111,

правильно ли я понял, что в твоей реализации
количество правил зависит от количества бит в наибольшем слагаемом?
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964222
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
mayton
пропущено...


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


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

Нет. Я понимаю что мы подготавливаем почву для других расчетов. Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964232
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Aleksandr Sharahov
пропущено...


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

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


Ну, мне так проще конструировать алгоритм:
мы таким образом гарантируем, что входные символы не пересекаются с выходными,
и, тем самым, при формировании результата не будет срабатываний замен из начала списка,
которые испортят всю малину.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964237
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Sharahov,

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

Алгоритм умножения чисел в столбик. Отчасти полагается на предыдущий алгоритм сложения нескольких чисел.
всего за каких то 9949 замен может перемножить числа 1000100111111000 на 1000110101111101
Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
* -> 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$



Обновил интерпретатор, исправлена ошибка с зависанием если ни одно правило не сработало.
Добавлено:
  • вывод статистики: шагов / замен.
  • "говорливый" режим выполнения, когда каждый шаг выводится в консоль
  • поддержка комментариев с символа #.
  • вывод правил, которые ни разу не использовались.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964249
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
незамутненное преобразованиями систем счисления деление на палках
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
//деление 
  ('>|',  '|>'),
  ('>/',  '|-='),
  ('=|',  '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|||#|||
-|||#|||
-||#|||
-|#|||
-#|||
||

...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964254
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
немного сократил
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
//деление 
  ('/',   '|-='),
  ('=|',  'i|='),
  ('=#',  '#|'),
  ('=',   '#'),
  ('|i',  'i|'),
  ('|-i', '-'),
  ('|-|', '|-=|'),
  ('-|',  '-'),
  ('-i',  '-'),
  ('-#|', '|'),
  ('-#',  '0')

...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964261
Aleksandr Sharahov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".


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

Поэтому достаточно реализовать НАМы для унарной системы счисления,
т.к. у нас есть функции перевода в нее и обратно.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964264
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Унарное вычитание
Код: sql
1.
2.
1-1 -> -
- -> 



Input: 11111-111

Output: 11
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleksandr Sharahov
mayton
Но если у нас будет 20 расчетов - нужно-ли
нам 20 алфавитов или хватит двух? По очереди менять "01" <=> "23".


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

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


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

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

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

И если-бы не было пересечений алфавитов левых выражений rules.
...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964269
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
перевод из десятичной в унарную

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
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



...
Рейтинг: 0 / 0
Четверговый НАМ и сложение двоичных чисел в строках
    #39964275
Swa111
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Aleksandr Sharahov,

в делении наверное это правило лишнее
Код: plaintext
 ('-#',  '0')
...
Рейтинг: 0 / 0
25 сообщений из 107, страница 2 из 5
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Четверговый НАМ и сложение двоичных чисел в строках
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]