DFA ย่อมาจาก Deterministic Finite Automata มันเป็นเครื่องสถานะจำกัดที่ยอมรับหรือสตริงที่ขึ้นอยู่กับตัวรับ
ในที่นี้ เราจะสร้าง 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("Accepted"); else{ printf("Rejected"); return 0; } } }
ผลลัพธ์
Accepted