เครื่องมือจำลอง Finite State Machine (FSM) ออนไลน์
ป้อนกฎการเปลี่ยนสถานะและอินพุต ดูเส้นทางสถานะและสถานะสุดท้าย รองรับกฎสูงสุด 200 รายการ อั…
เริ่มใช้งาน
คุณสมบัติและตัวอย่างการใช้งาน
ตัวอย่างที่เป็นรูปธรรม
สมมติกฎ: q0,0,q0, q0,1,q1, q1,0,q0, q1,1,q1 สถานะเริ่มต้น q0 และอินพุต 1011 ผลลัพธ์ที่ได้คือเส้นทาง q0 -> q1 -> q0 -> q1 -> q1 และสถานะสุดท้าย q1
ปัญหาที่เครื่องมือช่วยแก้
คุณต้องการตรวจสอบว่าสตริงอินพุตใดทำให้เครื่องจักรไปถึงสถานะที่ต้องการหรือไม่ โดยไม่ต้องเขียนโปรแกรม เครื่องมือนี้จะจำลองการเปลี่ยนสถานะทีละตัวอักษรและแสดงผลทันที
ข้อจำกัดที่ควรทราบ
- รองรับเฉพาะการเปลี่ยนสถานะแบบกำหนดเอง (deterministic) เท่านั้น ไม่มีสถานะยอมรับ (accepting state) หรือการเปลี่ยนแบบ epsilon
- กฎต้องมีจำนวน 1 ถึง 200 รายการ ชื่อสถานะต้องไม่เว้นว่างและยาวไม่เกิน 50 ตัวอักษร อักขระนำเข้าต้องเป็นโค้ดพอยต์เดียว (Unicode code point)
- ห้ามมีกฎซ้ำสำหรับคู่ (สถานะ, อักขระ) เดียวกัน หากพบจะปฏิเสธกฎนั้น
- อินพุตถูกประมวลผลทีละโค้ดพอยต์ และจำกัดความยาวไม่เกิน 10,000 หน่วย UTF-16
- ไม่มีฟีเจอร์สร้างแผนภาพ แปลงเป็น regex หรือลดรูปเครื่องจักร
คำถามที่พบบ่อย
1. จะทราบได้อย่างไรว่าอินพุตได้รับการยอมรับหรือไม่?
เครื่องมือนี้ไม่มีสถานะยอมรับ ดังนั้นจึงไม่มีการตัดสินใจว่า 'ยอมรับ' หรือ 'ปฏิเสธ' เพียงแต่แสดงเส้นทางและสถานะสุดท้าย คุณต้องตีความผลลัพธ์เองตามวัตถุประสงค์
2. หากอินพุตมีอักขระที่ไม่ตรงกับกฎใด ๆ จะเกิดอะไรขึ้น?
การจำลองจะหยุดที่ตำแหน่งนั้นและแสดงข้อผิดพลาด พร้อมระบุอักขระและสถานะปัจจุบันที่ทำให้ไม่มีการเปลี่ยน
3. สามารถใช้อักขระ Unicode เช่น อีโมจิ เป็นอักขระนำเข้าได้หรือไม่?
ได้ แต่ต้องเป็นโค้ดพอยต์เดียว (เช่น U+1F600) และต้องป้อนเป็นอักขระจริงในช่องอินพุต อย่างไรก็ตาม ระบบอาจไม่แสดงผลอีโมจิในบางสภาพแวดล้อม แต่การจำลองจะยังทำงานถูกต้อง
ข้อควรระวัง
สำหรับอินพุตที่ยาวมาก เส้นทางผลลัพธ์อาจยาวมาก ควรทดสอบกับอินพุตสั้น ๆ ก่อน และตรวจสอบกฎแต่ละบรรทัดให้ถูกต้อง
การประมวลผลเกิดขึ้นภายในเบราว์เซอร์ของคุณ