Понимание Σ* и Σ в формальных языках

Если у меня есть Σ={a} какие слова делают Σ* имеет?

Σ*= {a,aa,aaa,aaaa.....}?

Спасибо

4 ответа

Решение

Если ваш алфавит Σ={a} затемΣ*= {#, a,aa,aaa,aaaa.....} означает все возможное n* aвключая пустую строку # (phi), Другой способ создать эту последовательность - использовать грамматики:

S -> S
S -> aS
S -> #

где # пустая строка

У него есть пустая строка, которую вы не упомянули, она также содержит последовательности a, любой длины.

Вы можете найти больше информации на http://en.wikipedia.org/wiki/Kleene_star.

* в Σ* обычно обозначает ноль или много раз. Так Σ* будет иметь пустую строку и любую комбинацию букв из алфавита Σ,

(Так как ваш алфавит имеет только a, затем Σ* будет иметь любую комбинацию as и пустая строка.)

Если ваш алфавит имел больше значений, т.е. Σ = {a,b} тогда у вас будет любая комбинация aс и bс и пустая строка. т.е. Σ* = {phi, a, b, aa, ab, ba, bb, bab, ...(etc)}

Σ* это набор строк любой длины, который вы можете сделать, конкатенируя любое количество символов, взятых из Σ (включая нет).

Вот один из способов определения Σ*:

Позволять Σ^n быть набором строк длины n над Σ,

Тогда Σ* = Σ^0 объединение Σ^1 объединение...

Σ^0 = {phi} так как фи является единственной строкой длины 0, Поэтому фи всегда в Σ* не важно что Σ является.

Другие вопросы по тегам