dfa

    0热度

    2回答

    我必须写下我必须制作DFA的这个项目。我无法确定如何编写我的构造函数以避免出现以下错误no matching function for call to 'DFA::DFA(int&, char [2], char [4][2], char&, char [1])'|。任何帮助都很受欢迎。下面是代码: #include <iostream> #include<cstring> using nam

    0热度

    1回答

    我在决定论和非决定论的意义上挣扎了一下。当涉及到自动机时,我得到了不同,但我似乎无法找到以下答案:NFA转换为DFA转换是否具有确定性? 如果可以为同一常规语言构建多个DFA,那么这是否意味着NFA转换为DFA的结果不是唯一的?因此一个非确定性算法? 我很高兴你可以提供任何信息。 在此先感谢!

    1热度

    1回答

    我试图在Haskell中编写一个程序,该程序返回从初始状态开始的可达状态列表,类似于深度优先搜索。 states_reachable :: Eq st => DFA st -> [st] states_reachable (qs, sigma, delta, s, inF) = [delta q a | q <- qs, a <- sigma] 注: 适量是状态集合 西格玛的是字母

    7热度

    1回答

    在修改闭源游戏时,我在运行时修改了机器代码,将jmp放入我自己的代码中。为了以通用的方式做到这一点,我使用模式匹配来查找我想要修改的代码位置。 (这些模式仅由字符/字节和通配符组成,其中字节可以变化。)通过根据我的所有模式构建确定性有限自动机,我可以在线性时间内进行搜索。 但是我发现构建DFA需要比实际运行更多的时间,特别是在调试版本中(我在开发过程中肯定需要),而且随着添加更多模式,情况会变得更

    3热度

    1回答

    整除查找一个正则表达式表示由{a,b},其中的a数目的是除尽6和b数串可以被8整除。 我试图创建一个DFA,其接受这样的字符串。我的想法是使用所有余下的mod 6和mod 8,总共剩余48个余数。因此,在DFA每个状态是一对(r, s)其中r从0变化至6和s从0变化至7开始状态(以及接受状态)(0, 0)和由我们可以很容易地通过注意给转换到状态,如果我们输入"a"状态(r, s)转变到(r + 1

    1热度

    1回答

    的问题是: 写DFA识别正规语言L1 = {w ={1,2,3} |中的W中的数字之和是整除5 } 更重要的是,根据输入1,2,3,除以5时,总和的余数应该为0.我几乎完成了这个问题,但我似乎无法理解如何在输入时找到正确的余数是3.因为我完成了大部分工作e我将链接的图片,以便您了解我卡住的位置。 Start State: q0 Accept State: q0 我的问题是如何控制输入3个,因

    0热度

    1回答

    我已经用数组列表实现了DFA minimization algorithm,但是它没有返回正确的答案。如果有人能指出我失踪的算法的哪一部分,我将不胜感激(并纠正我是否使用了一种有效的方法来实现它)。 该程序应该从文件读取数据,然后对其进行处理。但是这个功能与这些数据无关。我已经硬编码它的工作。 实现该算法的方法被命名为(unreachableStates) DEBUG我:所以我就彻底的代码,并发现

    2热度

    1回答

    我试图创建DFA或正则表达式语言 L = {一ň b米 | n mod 3 = m mod 3}` 例如,L包含字符串aaabbb,aaabbbbbb和abbbb。 但是,我在这里遇到了任何进展。我怎样才能做到这一点?

    3热度

    1回答

    我正在学习自动机理论,并且面临将RE直接转换为DFA时遇到的一些困难。此方法需要从RE创建语法树。但我无法生成。 我给出一个正则表达式e.ga*b*(a|b)abc 现在我想生成这样的语法树。我不想为它编程,但我想手动完成。谁能帮我?

    1热度

    1回答

    如何避免从正则表达式(如[ab]*ab)直接构造DFA时出现歧义? 在一个简单的实现中,[ab]*的循环转换吃掉了所有a或b,它当然不同于现有的正则表达式实现,它们最终也考虑到“ab”。因此,执行自动机必须知道何时从第一个转换周期跳转到最后两个转换“a到b”。 任何想法如何实现这一目标? 我对直接DFA构建的答案感兴趣,而不是转换为DFA的NFA。 Adrian McCarthy's answer