English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Программа для создания DFA, который начинается и заканчивается на 'a' в вводе (a, b)

DFA означает детерминированный конечный автомат. Это конечный автомат, который может принимать или отклонять строки на основе своего акцептора.

Здесь мы создадим DFA, который принимает строки, начинающиеся и заканчивающиеся на 'a'. Вход поступает из множества (a, b). На основе этого мы спроектируем DFA. Теперь давайте обсудим некоторые эффективные и неэффективные случаи, которые принимает DFA.

Строки, которые DFA принимает: ababba, aabba, aa, a.

Строки, которые DFA не принимает: ab, b, aabab.

Пример

Эта программа проверяет строки, начинающиеся и заканчивающиеся на 'a'. Этот DFA принимает все строки, начинающиеся и заканчивающиеся на 'a'. Код проверяет, равны ли первый и последний элементы, и может поместить между ними все содержимое (a, b).

#include <iostream>
#include <string.h>
using namespace std;
int main(){
   char str[] = {'ababba'};
   int lenght = strlen(str);
   if(str[0] == 'a' && str[lenght-1] == 'a'){
      printf("Принят");
      else{
         printf("Отказано");
         возврат 0;
      }
   }
}

Результат вывода

Принят
Рекомендуется