![](https://otvet.imgsmail.ru/download/19765033_5572e54b272f4dad3e4fc65dec5f5a45_800.png)
a0 → 0a (где a — любой бит, 0 или 1)
a1 → 1a
0# → #0
1# → #1
0#0 → #0
1#0 → #1
0#1 → #1
1#1 → 0c (если c — текущий перенос, начинаем с 0)
0c#0 → #0c
1c#0 → #1c
0c#1 → #1c
1c#1 → 1c
c0 → 0c
c1 → 1c
#c → #1
Пример алгоритма:
1. a0 → 0a
2. a1 → 1a
3. 0# → #0
4. 1# → #1
5. 0#0 → #0
6. 1#0 → #1
7. 0#1 → #1
8. 1#1 → 0c
9. 0c#0 → #0c
10. 1c#0 → #1c
11. 0c#1 → #1c
12. 1c#1 → 1c
13. c0 → 0c
14. c1 → 1c
15. #c → #1
Пример работы алгоритма:
Вход: 11#10
Применение правил:
1 → # → 1 → 1 (добавляем оба числа)
11#10
Применяем правила для сложения каждого бита, начиная с младшего разряда.
0# → #0
1#0 → #1
Применяем правило переноса при сложении 1 и 1.
Таким образом, пошагово применяя правила, можно реализовать сложение двух чисел в двоичной системе с помощью нормального алгоритма Маркова.
Составьте нормальный алгорифм Маркова, вычисляющий функцию (в скобках
указана система счисления): f(x, y)=x+y, (2)