discrete-mathematics - 如何构造一个识别以两个 D 开头的位串集的 dfa?
问题描述
我需要这个解决方案的帮助,因为我刚刚开始研究有限状态自动化并且无法帮助自己解决这个问题。
这个问题是否意味着我必须提供输入 1101 1101 如果是这样,如果位字符串不是以两个 D 开头,如何显示要进入的另一个状态
解决方案
假设 D 表示十进制数 13 的十六进制表示,那么是的,相同数字的二进制表示是 1101 并且以两个 D 开头的字符串集(意思是二进制字符串的十六进制表示以两个 D 开头)将是以 11011101 开头的字符串集。要使用 DFA 接受此类字符串,您需要十个状态:
- 初始状态
- 字符串中每个符号的一个状态
- 死状态
转换将从初始状态转到与字符串符号对应的每个状态,按顺序,在这些位置的符号上。任何不合适的输入都会导致最后一个死状态,该状态会循环到自身。唯一接受的状态是与字符串的最后一个符号对应的状态,并且它也会循环到自身(因为通过附加到此基数形成的任何字符串也是您语言中的字符串)
推荐阅读
- python - 如何将跟踪列表表示为 cvxpy 中的表达式
- php - 输入url验证php
- javascript - Javascript Caesar Cypher 仅输出空字符串
- python - openCV-python flannbasedmatcher 比较 2 个图像
- ios - 在 CollectionView 中添加第二个自定义单元格 - Swift
- java - Redis 是否使用对象引用?
- javascript - 仅包含数字和后缀的 HTML 输入
- c# - 如何从 ASP.NET MVC 中的不同操作返回视图
- javascript - TypeError:无法分配给只读属性
- mysql - MySQL 从一个表返回结果取决于另一个表(主类别)中是否存在数据