- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
一个多小时以来,我一直在尝试不同的方法来解决这个问题,但我感到非常沮丧。
问题是:给出以下每种语言在 Sigma = {0,1} 上的正则表达式和 DFA。
a). {w ∈ Σ* | w 包含偶数个 0 或奇数个 1}
如果有人可以提供提示或让我开始解决这个问题,我将非常感激!
我知道这与 DFA 的内容类似,但这个是针对
{w ∈ Σ* | w 包含偶数个 0 或正好两个 1}
所以有点不同,但我无法弄清楚。
最佳答案
你可以看到如下:你总是要记住两件事:
现在,如果我们用 e 表示偶,用 o 表示奇,我们考虑四种状态:>ee(均为偶数)、eo(偶数个 0 和奇数个 1)、oe 和 oo。
现在,当我们读取零 (0) 时,我们只需交换第一个状态标记,因此这意味着我们引入了以下转换:
对于 (1) 相同:
现在我们只需要确定初始状态和接受状态。初始状态是 ee,因为此时我们没有考虑任何零和一。
此外,接受状态可以由条件确定:
w contains an even number of 0s or an odd number of 1s
这意味着接受状态是 ee、eo 和 oo。该DFA的图如下所示:
存在一种算法方法可以将DFA转换为等效的正则表达式,如here所述.
您可以通过将问题分成两个更简单的问题来构造正则表达式:
首先,您可以使用正则表达式:
(1*01*0)*1*
确实:您首先有一个组(1*01*0)
。该组确保有两个零,并且 1 可以出现在其间的任何位置。我们允许任意次数的重复,因为次数始终保持偶数。正则表达式以 1*
结尾,因为字符串中仍然可能存在其他表达式。
第二个问题可以用正则表达式解决:
0*1(0*10*1)*0*
解决方案或多或少是相同的。括号之间的表达式:(0*10*1)
确保这些均匀出现。通过在前面添加一个1
,我们保证1的数量是奇数。
解决问题的正则表达式是:
(1*01*0)*1*|0*1(0*10*1)*0*
因为“管道”(|
) 表示“或”。
关于regex - 将调节表达式转换为 DFA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35675263/
我最近在读一篇论文 Algorithms to Accelerate Multiple Regular ExpressionsMatching for Deep Packet Inspection关于
我正在备考,完成了图中这个任务 通常,从 NFA 到 DFA 的转换对我来说很容易。我从 NFA 创建一个转换表,并为每个"new"组合状态创建一个新列等等(看看我的尝试解释得更好) 不知何故,我对
我正在练习我的 DFA,我遇到了这个似乎非常复杂的问题。我试着把它分成两个较小的问题,我有一个答案,但它看起来不适合我。 有人可以帮助我,或者至少给我一些提示。 顺便说一下,它们都是接受状态。 我能想
正如标题所示,我希望有人帮助我编写 NFA 到 DFA 的转换的代码。我只需要伪代码。我试过用谷歌搜索,甚至找到了整个源代码,但是几乎没有资源可以帮助我给我一个正式的方法(用书面文字,而不是通过图片)
我有一个关于 DFA 最小化的问题。所以我使用了众所周知的技术将正则表达式转换为 NFA,然后使用 goto/closure 算法从中构造 DFA。现在的问题是如何将其最小化?我在这里看过有关它的课文
我已经在纸上编写了DFA,并希望将其转换为一组正则表达式。有人知道这样做的好工具吗? 最佳答案 从我的Google小搜索中,我找到了JFLAP。他们也有关于how to Convert FA to r
一个多小时以来,我一直在尝试不同的方法来解决这个问题,但我感到非常沮丧。 问题是:给出以下每种语言在 Sigma = {0,1} 上的正则表达式和 DFA。 a). {w ∈ Σ* | w 包含偶数个
我正在学习如何使用配对表法(系统化约简法)来约简 DFA。这是我们要约简的 DFA。 第一步是在表格中布置 DFA: 0
有人能告诉我所附的 DFA 是否正确吗? 我想为具有字母 Σ ={a, b} 的语言提供 DFA 我需要 DFA ----> A={ε, b, ab} 最佳答案 不,有多种原因: 您的自动机 bab
我的程序应该为二进制字符串实现 dfa...dfa 是一台一次只能处于一种状态的机器(当您输入字符串时,机器应该使用它,并且在最后一步它应该到达最终状态。如果是这样,我们说该字符串被机器接受)...这
我想创建一个 O(1) 复杂度的自动机的转换函数。我在考虑使用 HashMap 或 Binary tree 。那些想法好吗?你有什么建议吗?感谢您的关注:) 最佳答案 如果您确实需要对转换函数进行持续
我有一个 DFA A 和一个 CFG G,然后我必须检查 G 是否生成了 A 不接受(被 A 拒绝)的无限单词,以及一个不错的复杂度时间。 我想用 CFG 构造一个图,如果它包含有向循环,则生成无限语
我正在查看将 DFA 转换为正则表达式的时间复杂度分析“Introduction to the Automata Theory, Languages and Computation”,第 2 版,第
我需要生成一个确定性有限自动机 (DFA),它是从满足以下属性的所有可能的 DFA 中选出的。必须选择均匀分布的 DFA。 DFA 必须具有以下四个属性: DFA 有 N 个节点。 每个节点都有 2
我有一个 DFA (Q, Σ, δ, q0, F) 和一些“不关心的转换”。这些转换模型符号已知在某些情况下不会出现在输入中。如果采取任何此类转换,则结果字符串是否被接受都无关紧要。 是否有一种算法可
我有一个程序,它只是将所有状态作为一组状态作为输入。然后下一个输入是状态集合中的初始状态,然后是最终状态集合。 接下来是我在状态之间进行的一组转换。 例如:q0,1,q1 这意味着在输入 1 上存在从
在修改封闭源代码游戏时,我在运行时修改机器代码以跳转到我自己的代码中。为了以通用方式执行此操作,我使用模式匹配来查找我想要修改的代码位置。 (模式仅由字符/字节和通配符组成,其中字节可以变化。)通过从
从这个语法开始:https://stackoverflow.com/a/14287002/1082002我会实现一个简单的语法来接受和评估这样的简单语言: { if a==c { a
有了 DFA 的图表,如何将其转换为图灵机?我是否必须找到 DFA 接受的语言,然后创建图灵机?或者有直接的方法吗? 谢谢你。 最佳答案 DFA 中的每个转换读取输入的一个字符,跟随一个转换,然后移动
我希望在我的词法分析器中实现一个 DFA 最小化器,但我似乎无法生成一个看起来不像它已经是表达式的最小 DFA 的 DFA。 我正在从 NFA 构建 DFA,该 NFA 是使用后缀正则表达式中的汤姆森
我是一名优秀的程序员,十分优秀!