Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
32
Добавлен:
09.02.2015
Размер:
399.87 Кб
Скачать

Задача 1 (продолжение)

В компактной и наглядной форме процесс тождественного преобразования слова можно представить в виде графа переходов (рис. 4.3.).

Кружочками изображаются состояния процесса: q1 – просмотр слова слева направо, q2 – просмотр слова справа налево. Дугами – переходы из одного состояния в другое (возможно и подтверждение старого состояния). Дуги имеют метки: в числителе записывается считываемая головкой буква (через запятую представлены буквы, считывание каждой из которых инициирует один и тот же переход (подтверждение) из состояния в состояние), а в знаменателе – буква, обозначающая или перемещение головки (R – вправо на одну позицию, L – влево на одну позицию, – позиция остается неизменной), и/или собственно букву, записываемую в обозреваемую ячейку.

Другой возможной формой, привлекаемой для задания программы машины Тьюринга, выполнение которой приводит к процессу вычислений, является табличная (рис. 4.4.).

Рис.4.3. Граф переходов процесса тождественного преобразования слов в алфавите {0, 1} (B – пустой

Содержимое

Состояние

 

 

ячейки

q1

q2

0

q1 R

q2 L

1

q1 R

q2 L

B

q2 L

q1 R

Рис. 4.4. Табличная форма задания программы машины Тьюринга

Строки таблицы помечаются буквами алфавита машины, а столбцы буквами алфавита состояний головки считывания/записи. На пересечении столбца и строки находится новое состояние (либо подтвержденное старое) и соответствующая этому переходу буква, которая обозначает либо перемещение головки, либо букву, записываемую в ячейку на очередном шаге. Последнее справедливо для простейшей машины Тьюринга. В случае же обобщенной машины в этой клетке записывается состояние, буква и перемещение головки, т.е. тройка из пятерки , о которой шла речь при определении машины.

Задача 1 (продолжение)

 

 

 

Работа машины протекает следующим образом. Перед ее

 

 

запуском на ленту наносится начальная информация (на

 

 

рис. 4.5. – четырехбуквенное слово 0110, выбранное в

 

 

качестве конкретного в иллюстративных целях). В “поле

 

 

зрения” головки попадает ячейка с пустым символом B

0

 

ленты, которая предшествует ячейке с первой буквой

 

слова. Это состояние головки (на рис.4.5. отмечено “0”)

1

 

играет двойственную роль: с одной стороны, оно является

 

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

2

 

другой,– заключительным, поскольку в него попадает

 

машина из состояния q2 при обратном просмотре слова. С

3

 

учетом сказанного граф переходов рис. 4.3. (где это

 

состояние не изображено) приобретает вид графа на рис.

4

 

4.6. Из состояния q0 машина переводится в состояние q1

 

путем сдвига головки на ячейку вправо при поступлении

5

 

внешнего по отношению к машине знака ПУСК. На

 

рис. 4.6. это обстоятельство отражено дугой, соединяющей

6

вершины q0 и q1 и имеющей отметку ПУСК/R.

Дальнейший процесс протекает уже автоматически и

7

 

однозначным образом определяется графом переходов рис.

4.3. либо таблицей рис.4.4.

8

Первый шаг. Обозревается первая буква 0 слова при

 

 

состоянии головки q1. Результат: подтверждается

9

 

состояние q1 и вырабатывается знак R сдвига головки

 

 

 

вправо. Шаг завершается конфигурацией, помеченной

10

 

расположенной слева на рис. 4.5. цифрой 2.

 

Второй, третий и четвертый шаги аналогичны первому. В

11

 

результате выполнения четвертого шага конфигурация

 

 

машины приобретает вид пятой строки на рис. 4.5.

 

 

 

 

0

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B … 2

… B B 0 1 1 0 B B … 2

… B B 0 1 1 0 B B … 2

… B B 0 1 1 0 B B … 2

… B B 0 1 1 0 B B … 2

… B B 0 1 1 0 B B … 1

… B B 0 1 1 0 B B …

Рис. 4.5. Процесс тождественного преобразования слова

Рис. 4.6. Граф переходов процесса тождественного преобразования слов с выделенным начальным состоянием

Задача 1 (продолжение)

На пятом шаге в “поле зрения” головки попадает пустой символ B, ограничивающий заданное слово справа и выступающий в роли “отражателя” распространяющейся по ленте прямой волны (слева направо). Факт “отражения” фиксируется изменением состояния машины: на пятом шаге в “поле зрения” головки попадает символ B, что приводит к результирующей конфигурации, изображенной в шестой строке на рис. 4.5.

На шестом шаге подтверждается состояние головки q2 и осуществляется сдвиг влево. Результат представлен седьмой строкой. Седьмой, восьмой, девятый шаги выполняются аналогично.

На десятом шаге в “поле зрения” головки попадает символ B, являющийся левой границей обрабатываемого слова. Согласно графу переходов на рис. 4.3. и таблице на рис. 4.4. на десятом шаге реализуется переход в состояние q1 и сдвиг головки вправо. В результате оказывается сформированной конфигурация, изображенная в строке 11 рис. 4.5. Так же как и в случае “отражения” прямой волны от правой границы слова, здесь фиксируется факт отражения волны от левой границы. Благодаря этому создаются условия для повторения рассмотренного выше процесса распространения прямой волны. Одиннадцатый шаг повторяет первый шаг и т.д. Имеет место периодический процесс с периодом в 10 шагов (тактов работы) машины Тьюринга.

Если руководствоваться графом переходов машины на рис. 4.6., то результатом десятого шага окажется переход машины из состояния q2 в состояние q0, сопровождающийся выработкой знака ,

обозначающего неизменность положения головки. Благодаря этому в “поле зрения” головки сохраняется символ B, предшествующий первой букве преобразуемого слова. Конфигурация машины, отвечающая рассматриваемому случаю, совпадает с той, что изображена на нулевой строке рис. 4.5. Таким образом, в результате выполнения десяти шагов машина попадает в заключительное состояние q0, в котором остается до появления знака ПУСК. Последний, как уже было отмечено выше, инициирует переход в состояние q1 и сдвиг головки вправо. Формируется конфигурация, изображенная на первой строке рис. 4.5., начиная с которой развивается уже описанный вычислительный процесс реализации оператора тождественного преобразования

E(P) = P.

Задача 2. Сложение чисел, представленных в унарной записи.

Даны две конечные совокупности палочек, представляющих соответственно первое и второе слагаемое. Требуется получить третью, представляющую сумму. Палочки в каждой совокупности вписываются по одной в каждую ячейку, ячейки берутся подряд без пропусков (такие совокупности будем называть наборами палочек); исходные наборы разделены пустой ячейкой, отмеченной символом B. Результирующий набор (сумма) может быть расположен в тех же ячейках ленты, в которых заданы наборы-слагаемые.

Чтобы приспособить машину Тьюринга для вычисления числовых функций, надо договориться о представлении чисел на ленте.

|/R

 

|/L

q1

B/|

q2

 

ПУСК/

 

B/R

q0

 

|/

B/R

 

q4

q3

 

|/B

 

|/B

Рис. 4.7. Граф переходов процесса суммирования чисел в унарном представлении

Возможный способ состоит в следующем: число натуральное x представляется набором из x+1 палочек с тем, чтобы отличать представление числа 0 от пустой ленты. Тогда представление на ленте пары слагаемых x и y содержит x+y+2 вхождений буквы | (палочка), причем наборы разделены одной пустой ячейкой.

Идея, положенная в основу алгоритма, состоит в том, чтобы в ячейку-разделитель исходных наборов записать палочку, а затем из полученной сплошной совокупности, содержащей x+y+3 палочки, исключить (стереть) две палочки, начиная с левого конца. Тем самым будет сформирована результирующая совокупность из x+y+1 палочек, представляющая сумму двух натуральных чисел в избранной нами форме унарной записи.

Согласно предлагаемому графу переходов (рис. 4.7.) работа машины будет протекать так. Начальные условия: в поле зрения головки установлена самая левая палочка из совокупности палочек, представляющих первое и второе слагаемое. Машина находится в состоянии q1 (конфигурация 1 на рис. 4.8.).

Задача 2 (продолжение).

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Первый шаг. Находясь в состоянии q1 головка машины

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

|

|

|

B

 

|

|

|

|

B

 

считывает первую палочку, в результате чего вырабатывается

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

знак R сдвига головки вправо. Состояние q1 машины

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

|

|

|

B

 

|

|

|

|

B

 

подтверждается (конфигурация 2).

3

 

 

 

 

 

 

 

 

 

 

1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Второй и третий шаги аналогичны первому шагу: считывается

 

 

B

 

|

|

|

B

 

|

|

|

|

B

 

 

 

 

 

 

 

 

 

 

1

 

 

палочка, вырабатывается знак R и подтверждается состояние q1.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

B

|

|

|

B

|

|

|

|

B

Четвертый шаг. В поле “зрения головки” попадает пустой символ

 

 

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B, в результате чего на этом шаге изменяется состояние головки

5

 

 

 

 

 

 

 

 

 

 

B

 

|

|

|

|

|

|

|

|

B

 

(головка переходит из состояния q1 в состояние q2), а вместо

 

 

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

пустого символа записывается палочка (конфигурация 5). На

6

 

 

B

 

|

|

|

|

|

|

|

|

B

 

этом этапе развития вычислительного процесса оказывается

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

достигнута промежуточная цель – сформировано слово,

7

 

 

B

 

|

|

|

|

|

|

|

|

B

 

 

 

 

 

 

 

 

 

состоящее сплошь из палочек между левым и правым

 

 

 

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

8

 

 

B

 

|

|

|

|

|

|

|

|

B

 

ограничительными пустыми символами B.

 

 

 

 

 

 

2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Следующие действия направлены на достижение результата

9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

 

|

|

|

|

|

|

|

|

B

 

путем замены двух крайних слева палочек на символы B.

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Благодаря этому будет сформировано слово, состоящее из шести

10

 

 

 

 

 

 

 

B

 

|

|

|

|

|

|

|

|

B

 

палочек, являющееся унарной записью суммы (согласно нашей

 

 

 

 

 

 

 

 

 

3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

договоренности о представлении чисел сумма равна 5).

11

 

 

B

B

|

|

|

|

|

|

|

B

 

 

 

 

На пятом, шестом, седьмом и восьмом шагах головка

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

12

 

 

B

B

|

|

|

|

|

|

|

B

 

перемещается влево, сохраняя неизменным свое состояние q2.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

4

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

На девятом шаге в поле зрения головки попадает пустой символ

13

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

B

B

B

|

|

|

|

|

|

B

 

B, обусловливающий смену состояния головки с q2 на q3 и ее

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

сдвиг вправо. На десятом шаге в соответствующую ячейку

14

 

 

 

 

 

 

B

B

B

|

|

|

|

|

|

B

 

записывается пустой символ B, а состояние головки

 

 

Рис. 4.8. Процесс суммирования

 

подтверждается. Одиннадцатый шаг приводит к смене состояния

 

 

 

головки с q3 на q4 и ее сдвигу вправо.

 

 

чисел в унарном представлении

На двенадцатом шаге палочка в соответствующей положению головки ячейке заменяется на пустой символ B, вырабатывает знак R сдвига вправо. При этом она попадает в состояние q0, в котором остается до тех пор, пока не появится знак ПУСК. Под его воздействием состояние q0 при сохранении положения головки (при смене состояния вырабатывается знак неизменного положения головки). Благодаря этому восстанавливается стандартное положение головки (над первой позицией преобразуемого слова) и ее состояние q1.

Задача 3. Повторное сложение чисел в унарной записи.

Рассмотрим натуральные числа N+ = {1, 2, …} в унарной записи, при которой число представляется набором палочек “|”, число которых равно заданному числу. Нуль в рассмотрение не принимается. Исходные слагаемые разделяются символом “*”. Результат представляет собой второе слагаемое, к которому подсуммируется первое слагаемое. Указание на подсуммирование задается символом “ПУСК”, который формируется “извне” и воздействует на заключительное состояние машины так, что головка машины из этого состояния переходит в начальное и благодаря этому процесс подсуммирования повторяется.

Для этого нужно, очевидно, чтобы первое слагаемое не исчезло (что имеет место в предыдущей задаче) после первого цикла сложения, а, наоборот, чтобы его можно было

восстановить после каждого цикла сложения и снова прибавить к числу, изображенному правее звездочки. Этого можно добиться, например, тем, что палочки левого набора не стираются, а временно заменяются какими-либо знаками; в нашем случае используется буква . Пустой символ представлен буквой B.

Идея, положенная в основу алгоритма, состоит в том, чтобы каждую из палочек левого

 

набора присовокупить сперва к набору, представляющему второе слагаемое; при этом на место

 

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

 

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

Рис. 4.9. Граф переходов процесса

повторного сложения чисел в унарной записи

Возможный вариант графа переходов представлен на рис. 4.9.

Здесь “палочка” представлена |, неизменное положение головки ; “,” – в числителе дроби, которая помечает дугу графа, обозначает ИЛИ.

Работа машины представлена последовательностью конфигураций, изображенной на рис. 4.10. Начальные условия: в “поле зрения” головки установлена самая правая палочка из набора, представляющего первое слагаемое. Машина находится в конфигурации 1.

 

Задача 3 (продолжение)

 

 

 

 

Первый шаг. Находясь в состоянии q1 головка

 

машины считывает

первую палочку, записывает в ячейку символ и сдвигается вправо на одну ячейку, переходя в состояние q2. На втором шаге под воздействием | головка сдвигается вправо, подтверждая свое состояние. На третьем шаге в “поле зрения” головки попадает *, на которую согласно графу переходов машина реагирует точно так же, как и на считываемую |, т.е. подтверждает состояние q2, а головка сдвигается вправо. Четвертый шаг аналогичен второму шагу. На пятом шаге под воздействием пустого символа B изменяется состояние головки с q2 на q3. При этом в наблюдаемую ячейку записывается палочка, и головка сдвигается влево. Благодаря описанным действиям первая палочка из набора, стоящая левее *, перенесена в ячейку, непосредственно следующую за набором, стоящим правее *. На место первой перенесенной палочки оказалась помещенной буква , которая пометила своим присутствием ячейку, из которой произошел перенос палочки в правый набор палочек, где формируется искомый результат суммирования. Шестой, седьмой, восьмой шаги состоят в перемещении головки справа налево по ленте с подтверждением состояния q3. На девятом шаге под воздействием меняется состояние машины с q3 на q1. При этом головка сдвигается вправо. Машина завершила цикл работы по переносу палочки из набора слева от * в результирующий набор, расположенный справа от *. В результате выполнения 10, 11, 12, …, 18-го шагов реализуется второй цикл по переносу второй палочки из левостороннего (относительно *) набора палочек в результирующий набор. Шаги 19, 20 и 21-й позволяют восстановить исходный левосторонний набор палочек. 22-й шаг приводит к заключительному состоянию q5, в котором машина остается до тех пор, пока не поступит извне сигнал ПУСК, обусловливающий переход машины из заключительного состояния q5 в начальное q1, причем головка сдвигается при этом вправо, занимая исходное положение, соответствующее конфигурации строки 1 на рис. 4.10. Далее описанный выше процесс повторяется, в результате чего осуществляется очередной перенос левостороннего набора палочек в результирующий набор, а машина попадает в заключительное состояние q5 и т.д.

1

… B | 1 |

* | B …

 

 

2

 

 

2

… B

| *

| B …

3

… B

|

2

| B …

*

4

… B | * | 2B B …

5

… B | * | B2B …

6

… B |

* | 3 | B B …

 

 

3

 

 

7, 8, 9

… B

|

*

| | B B …

10

… B

1

 

| | B B …

| *

11

… B

 

2

| | B B …

*

12

… B * | 2 | B B …

13

… B * | | 2B B …

14

… B * | | B2B …

15

… B

* | | 3 | B …

16, 17,

… B

3

 

| | | B …

*

18

… B

 

1

| | | B …

19

 

*

20

… B

4

 

| | | B …

 

*

21

… B

4

 

| | | B …

| *

22

… B4 | | * | | | B …

23

… B5 | | * | | | B …

Рис. 4.10. Процесс повторного сложения чисел в унарной форме

Задача 4. Умножение чисел в унарной записи.

Условимся о представлении множителя набором палочек, расположенных слева от разделителя, представленного символом #. Правее этого символа находится набор палочек, представляющий множимое. Непосредственно за ним располагается разделитель *, за которым формируется результирующий набор палочек, представляющий произведение.

В основу алгоритма можно положить описанный выше при решении задачи 3 алгоритм повторного сложения при нулевом значении начальных условий, представленных правосторонним (относительно разделителя *) набором палочек. Тогда повторяемый процесс переноса левостороннего набора палочек в результирующий набор, расположенный правее *, даст произведение при условии, что число переносов определяется числом палочек в наборе-множителе.

На рис. 4.11. изображен возможный вариант графа переходов процесса умножения чисел в унарной записи, а на рис. 4.12. представлен в виде последовательности конфигураций процесс формирования произведения множителя, представленного набором из трех палочек, и множимого в виде набора из двух палочек, расположенных между разделителями # и *.

В исходном состоянии qa головка считывает первую единицу множителя, записывает пустой символ B и сдвигается вправо. Состояние головки становится qb. На этом завершается первый шаг процесса. В этом состоянии осуществляется смещение головки вправо до ограничителя # (второй и третий шаги). На четвертом шаге под воздействием знака # головка переходит из состояния qb в состояние q1, причем в “поле зрения” головки попадает первая палочка набора, представляющего множимое. С пятого шага начинается цикл q1q2q3 (q1), в результате которого в результирующем наборе (формируется правее разделителя *) оказывается первая палочка из набора множимого (в соответствующей ячейке множимого вместо палочки записана буква ). Второй цикл по переносу второй палочки множимого в результирующий набор произведения начинается с 12-го шага и завершается 18-ым (конфигурация, соответствующая результату выполнения 18-го шага указана в 19-ой строке). Эта строка говорит о том, что в результирующий набор перенесен набор палочек, составляющий множимое; в множимом на месте палочек присутствует буква , а первая палочка множителя заменена пустым символом B. Последнее свидетельствует о том, что к этому моменту осуществлен однократный перенос множимого в результирующий набор-произведение.

Задача 5. Инкремент числа в десятичной записи (переход от

n к n+1 в десятичной системе счисления).

Дана десятичная запись натурального числа n, т.е. представление натурального числа n в десятичной системе счисления; требуется указать десятичную запись числа n+1.

В предыдущих задачах рассматривались операции над числами, представленными унарными записями, т.е. в однобуквенном алфавите {|}. Способ хранения информационных объектов (в данном случае чисел) влияет на построение алгоритмов их обработки. Для натуральных чисел аналитическое представление имеет простую и фиксированную структуру – числа представляют количества палочек в наборах |, ||, |||, … . Предыстория позиционной системы обозначений современного типа основана на идее счета все более крупными единицами. В случае десятичной системы счисления эти единицы представляют собой степени 10 (основания системы счисления). Число этих единиц записывается в алфавите из десяти цифр {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}. Прочтение записи требует умножение единицы очередного разряда на число этих единиц и сложения результатов. На этом уровне система названий чисел в естественном языке уже перестает быть чисто лингвистическим объектом.

Рис. 4.13. Граф переходов процесса реализации инкремента числа в десятичной записи

Условимся, что заданное число n, а также результирующее число n+1, представлены последовательностью цифр, причем цифры размещены по одной в ячейке (ячейки следуют одна за другой без пропусков). Слева и справа запись числа ограничена пустыми символами B. Принято допущение о том, что длина записи числа неизменна. Запись, состоящая сплошь из девяток, при выполнении инкремента соответствующего числа обращается в запись из всех нулей, причем число нулей и девяток совпадает. Образующийся при этом перенос в старший разряд записи числа во внимание не принимается.

Задача 6. Перевод унарной записи числа в десятичную.

Дана конечная совокупность палочек, вписанных в ячейки, взятые подряд без пропусков (согласно нашей договоренности речь идет о наборе палочек); требуется записать в десятичной системе число этих палочек.

Условимся входной набор палочек отделять от десятичной записи числа разделителем “*”, а в качестве пустого символа, как и в предыдущих задачах, использовать символ B. Предполагается выполненным условие о достаточности числа ячеек памяти, отведенных для десятичной записи численного эквивалента набора палочек. Начальное положение головки считывания/записи соответствует крайней левой палочке набора.

В основу алгоритма преобразования положен рассмотренный в предыдущей задаче алгоритм реализации операции инкремента в случае десятичной записи числа. Возможный вариант графа переходов процесса преобразования унарной записи в десятичную представлен на рис. 4.15. Соответствующий процесс представлен на рис. 4.16. Процесс включает три цикла смены состояний q1q2q3q4 (q1), каждый из которых реализует операцию инкремента числа, представленного в десятичной записи (по числу палочек в исходном наборе, представляющим число в унарной записи). При исчерпании палочек из входного набора процесс попадает в заключительное состояние qF.

Рис. 4.15. Граф переходов процесса преобразования унарной записи числа в десятичную

Соседние файлы в папке презентации