Пожалуйста, помогите мне сделать DFA из следующего условия:
L = {w: na(w) по модулю 3 > nb(w) по модулю 3},
где na(w) представляет количество вхождений a
в w, а nb(w) представляет количество вхождений b
в w.
Пожалуйста, помогите мне сделать DFA из следующего условия:
L = {w: na(w) по модулю 3 > nb(w) по модулю 3},
где na(w) представляет количество вхождений a
в w, а nb(w) представляет количество вхождений b
в w.
Прежде всего, спроектируйте DFA для n (a) mod3 по горизонтали и с его начальным состоянием n (b) mod3 по вертикали ..... Всего потребуется 9 состояний и отметьте состояния (a, b), где a - это n (a) mod3 и b представляют n(b)mod3, а затем делают состояния, в которых первый элемент кортежа больше второго, в качестве конечных состояний (в этом случае их будет 3)..... надеюсь, мой ответ поможет
Единственное, что нам нужно отслеживать, — это количество вхождений a и b по модулю 3 соответственно. Для каждого из a mod 3 и b mod 3 существует три возможности (0, 1 или 2 соответственно), и, поскольку они независимы, мы можем находиться в общей сложности в девяти состояниях:
Это будут состояния нашего DFA. Переходы следующие:
Это дает нам в общей сложности 18 переходов.
Мы хотим принять, когда мод 3 > b мод 3; то есть:
Это дает нам 3 принимающих состояния.
Наконец, наше начальное состояние возникает, когда мы видели ноль экземпляров любого символа; то есть:
Теперь мы полностью определили DFA для этого языка.
w
, если в ней больше нет символов. - person Aaron Mansheim   schedule 14.02.2017