Язык Дика — различия между версиями
Senya (обсуждение | вклад) (Метки: правка с мобильного устройства, правка из мобильной версии) |
Senya (обсуждение | вклад) (Метки: правка с мобильного устройства, правка из мобильной версии) |
||
Строка 1: | Строка 1: | ||
− | |||
{{Определение | {{Определение | ||
|id=def1 | |id=def1 | ||
− | |||
|definition=Пусть <tex>A = \{a_1, a_2, \ldots , a_k\}</tex> — произвольный конечный набор различных букв. '''Словом''' в алфавите <tex>A</tex> называется произвольная конечная последовательность буквa <tex>a_1 a_2 \ldots a_m,</tex> где <tex>a_i \in A , i = 1, \ldots , m</tex>. Число <tex>m</tex> называется '''длиной слова'''. '''Языком''' над алфавитом <tex>A</tex> называется произвольное (конечное или бесконечное) множество слов в алфавите <tex>A</tex>. | |definition=Пусть <tex>A = \{a_1, a_2, \ldots , a_k\}</tex> — произвольный конечный набор различных букв. '''Словом''' в алфавите <tex>A</tex> называется произвольная конечная последовательность буквa <tex>a_1 a_2 \ldots a_m,</tex> где <tex>a_i \in A , i = 1, \ldots , m</tex>. Число <tex>m</tex> называется '''длиной слова'''. '''Языком''' над алфавитом <tex>A</tex> называется произвольное (конечное или бесконечное) множество слов в алфавите <tex>A</tex>. | ||
}} | }} | ||
Строка 11: | Строка 9: | ||
{{Определение | {{Определение | ||
|id=def2 | |id=def2 | ||
− | |||
|definition='''Язык Дика''' (англ. ''Dyck language'') — множество [[Правильные скобочные последовательности#Определения |правильных скобочных структур]] вместе с пустой структурой, образующее язык над алфавитом <tex>\{a, b\}</tex>. | |definition='''Язык Дика''' (англ. ''Dyck language'') — множество [[Правильные скобочные последовательности#Определения |правильных скобочных структур]] вместе с пустой структурой, образующее язык над алфавитом <tex>\{a, b\}</tex>. | ||
}} | }} | ||
− | |||
{{Определение | {{Определение | ||
|id=def3 | |id=def3 | ||
− | |||
|definition='''Производящей функцией''' (англ. generating function) '''языка''' <tex>L</tex> называется производящая функция <tex>L(s) = l_0 + l_1 s + l_2 s^2 + \ldots,</tex> где <tex>l_k</tex> есть число слов длины <tex>k</tex> в языке <tex>L</tex>. | |definition='''Производящей функцией''' (англ. generating function) '''языка''' <tex>L</tex> называется производящая функция <tex>L(s) = l_0 + l_1 s + l_2 s^2 + \ldots,</tex> где <tex>l_k</tex> есть число слов длины <tex>k</tex> в языке <tex>L</tex>. | ||
}} | }} | ||
+ | |||
+ | __TOC__ | ||
== Правила вывода в языке Дика == | == Правила вывода в языке Дика == | ||
Строка 36: | Строка 33: | ||
:1) пустое слово, | :1) пустое слово, | ||
:2) слово, в котором внутри самой левой пары соответственных скобок стоит некоторое слово языка Дика и после этой пары стоит слово языка Дика. | :2) слово, в котором внутри самой левой пары соответственных скобок стоит некоторое слово языка Дика и после этой пары стоит слово языка Дика. | ||
+ | |||
+ | Ясно, что для каждого слова такое представление единственно. | ||
+ | |||
+ | Вычислим с помощью правил вывода производящую функцию для языка Дика. Для этой цели выпишем '''некоммутативный производящий ряд''', перечисляющий слова языка. Этот ряд представляет собой формальную сумму всех слов языка, выписанных в порядке возрастания длины: | ||
+ | |||
+ | <tex>D(a, b) = \lambda + ab + aabb + abab + aaabbb + aababb + \ldots</tex> |
Версия 12:17, 14 мая 2018
Определение: |
Пусть | — произвольный конечный набор различных букв. Словом в алфавите называется произвольная конечная последовательность буквa где . Число называется длиной слова. Языком над алфавитом называется произвольное (конечное или бесконечное) множество слов в алфавите .
Пустое слово имеет длину и может входить или не входить в язык.
Определение: |
Язык Дика (англ. Dyck language) — множество правильных скобочных структур вместе с пустой структурой, образующее язык над алфавитом . |
Определение: |
Производящей функцией (англ. generating function) языка | называется производящая функция где есть число слов длины в языке .
Содержание
Правила вывода в языке Дика
Рассмотрим два правила вывода в языке Дика:
- 1)
- 2)
где
— буква, не входящая в алфавит ,стрелка
заменяет фразу: если в слове есть буква , то эту букву можно заменить на слово, стоящее справа от стрелки.Правила вывода можно понимать следующим образом:
Всякое слово в языке Дика есть либо
- 1) пустое слово,
- 2) слово, в котором внутри самой левой пары соответственных скобок стоит некоторое слово языка Дика и после этой пары стоит слово языка Дика.
Ясно, что для каждого слова такое представление единственно.
Вычислим с помощью правил вывода производящую функцию для языка Дика. Для этой цели выпишем некоммутативный производящий ряд, перечисляющий слова языка. Этот ряд представляет собой формальную сумму всех слов языка, выписанных в порядке возрастания длины: