确定有限状态自动机(deterministic finite automaton --> DFA)

本文介绍了一个Java命令行程序,该程序读取DFA的定义文件并处理字符串,判断其是否属于DFA识别的语言。用户输入文件包含DFA的状态、字母表、终态和转换函数,程序输出接受或拒绝结果。
摘要由CSDN通过智能技术生成

确定有限状态自动机(deterministic finite automaton --> DFA)

总结

创建一个程序,该程序将输入确定性有限状态自动机(DFA)的定义,并处理一些字符串,以确定这些字符串是否是DFA所识别的语言的一部分。

细节

  1. 编写一个Java命令行程序,首先提示用户输入文件名。
  2. 这个文件将被程序读入。
  3. 该文件将包含对 DFA 的描述和一些要由 DFA 计算的未知数量的字符串。
  4. 对于每个字符串,程序将模拟该字符串上的 DFA 。
  5. 在下面一行打印带有"ACCEPT"或"REJECT"的字符串,并在后面加一个空行以使输出可读。

文件格式

  1. 第 1 行一整数, N ,作为DFA中的状态数(编号为 0 一 N 一 l ) ; 启动状态将始终为 0
  2. 第 2 行一表示DFA字母表中单个符号的字符串(单个字符)
  3. 第 3 行一至少一个整数 【 0 , N 一 l ]将是最终状态(s) ; 多个最终态将被空格分开
  4. 第 4 行: M 一 DFA 的转换函数,定义为一个三元组:整数字符integer ,其中第一个整数是当前状态,字符是要转换的输入符号,第二个整数是要转换的状态。每行上不超过 10 个三元组,其中一 1 #一 1 作为最后的三元组,表示转换函数定义的结束。行 M + 1 : EOF一要输入到DFA进行计算的字符串,每行一个,直到文件结束。

Example input file:

4
ba
3
0 b 0 1 b 0 2 b 0 3 b 3
0 a 1 1 a 2 2 a 3 3 a 3
-1 # -1
baabaaaab
babbabbab

Examle output:

baabaaaab
ACCEPT

babbabbab
REJECT

使用python实现

final_state = input
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永远喜欢薇尔莉特

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值