【发布时间】:2015-07-06 12:44:41
【问题描述】:
我想让正则表达式具有偶数个 b 和奇数个 a 也是它的 DFA 和 NFA
为此我在DFA
我得到了这两个Regular Expression
Regular Expression对于偶数 b 的(a*a*a*bb)*Regular Expression对于 a 的奇数个(a b*b*)(a b*b*a)*
问题:我做了正确的 DFA 吗?
- 如果两个正则表达式都正确,如何合并成一个??
- 如何将
DFA转换为NFA?
编辑:我从 Grijesh Chauhan 获得 DFA
仍然无法制作只允许偶数个 b 和奇数个 a 的正则表达式。
我也试过这个正则表达式
(a(bb)*(aa)*)*
注意:从上面的 RE 只生成那些从 a 开始的字符串,但我希望那个 RE 生成偶数个 b 和奇数个 a 的字符串,无论从 a 或 b 开始
【问题讨论】:
-
这没有多大意义;
bab有偶数个bs 但不匹配你的第一个 RE,b有奇数个bs 但不匹配你的第二个 RE,X*X*=X*对于所有 X ,并且所有 DFA 都已经是 NFA,所以我不明白您要转换的内容。还有多种“合并” RA 的方法;你指的是哪种方式?串联? -
检查这个答案 [Need Regular Expression for Finite Automata: Even number of
1s and Even number of0s]()(stackoverflow.com/questions/17420332/…) re-write solution with final state is Q2。 -- 实际上是重复的 -
@GrijeshChauhan 我正在寻找正则表达式,DFA 和 NFA 用于偶数 b 和奇数 a
-
@KhurramAli 是的,该链接回答了您的问题,请阅读我已经给出了每个状态的含义“Q1:a 的奇数和 b 的偶数”,因此您必须按照我所写的那样驱动正则表达式“偶数 a 偶数 b”。试一试。
-
@GrijeshChauhan 在链接的答案“|”中是“+”在 PCRE 中?
标签: regex regular-language finite-automata dfa