问题标签 [jflap]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
turing-machines - JFLAP 图灵机快捷方式问题
在JFLAP中,有一些图灵机转换的快捷方式。只要当前磁带符号不是指示符号,这些快捷方式之一就允许您进行转换。例如,转换 !g,x;R 基本上表示“如果当前磁带符号不是 g,则进行此转换”。
到现在为止还挺好。但我想要的过渡是 !□,~;R 基本上说“只要当前符号不是字符串结尾(空单元格)符号就向右移动”。问题是我不知道如何输入“!□”。
JFLAP在线文档有这样的说法:
第一个快捷方式是存在使用“!”的选项 字符来传达“除此字符之外的任何字符”的含义。例如,关于过渡(!a;x,R),如果头部遇到除“a”之外的任何字符,它将用“x”替换字符并向右移动。要写表达式“!□”,只需在输入命令时输入“1”即可。
我该如何做最后一句话试图向我解释的事情?
finite-automata - 行列式有限自动机 (JFLAP)
我有一个 DFA 问题(行列式有限自动机)。我们正在使用 JFLAP 来构建自动机。我想不出这个问题来挽救我的生命!这里是
“DFA 可以识别具有偶数个零和奇数个 1 的所有字符串的语言。”
所以字母表是 {0,1} 并且只使用 0,1。所以我需要建立一个自动机来识别偶数个零和奇数个零。
turing-machines - JFLAP图灵机批量测试
我在 JFLAP 中构建的图灵机是一个二进制加法器。这是一个 3 磁带 TM:前两个磁带是输入,第三个磁带得到输出。当我尝试进行批量测试(在此处找到信息)时,我无法让 .txt 文件中的第三个字符串成为输出磁带。我的 .txt 文件的构建方式如下:
但是,因为它是一个 3 磁带机,而且它必须是,我想成为输出字符串的最后一个二进制字符串被作为第三个输入字符串,对于所有测试,它应该是空白的。有什么方法可以格式化我的测试字符串,以便 JFLAP 理解最后一个字符串应该是输出?
finite-automata - JFLAP:语言中任何字符的符号
我是 Automata 和 JFLAP 的初学者。我有动作有限自动机,它告诉语言中的任何字符,它必须进入另一个状态。我如何在 JLAP 上实现这一点。
谢谢
java - 适用于 JFLAP 的 IP 验证正则表达式
我注意到我们程序员在我们的程序中使用的正则表达式用于诸如
- 电子邮件地址验证
- 知识产权验证
- ...
与Automata中使用的那些正则表达式有点不同(如果我没记错的话)
顺便说一句,我想设计一个 NFA 并最终设计一个用于 IP 验证的 DFA。我发现了很多正则表达式,例如以下一个:
但我无法使用 JFLAP 将其转换为 NFA 或 DFA。
我应该怎么办?
regex - 尝试在 scala 中使用 jflap 正则表达式
请参阅以下 DFA http://i.stack.imgur.com/iH3RM.png
通过 JFLAP 创建。当我转换为正则表达式时,JFLAP 给出:
当我将它粘贴到 Scala REPL 中时:
我有两个简单的问题。
那是正确的正则表达式吗?为什么它包含一个 λ ?
我如何在 Scala 中使用它,因为当我粘贴 repl 时 λ 没有正确显示?
parsing - 正确无限制语法:
我似乎无法弄清楚不受限制的语法
L = (w am bn | w={a,b}* m=number of a's in w n=number of b's in w).
我为它构建了以下语法,但它一直拒绝我在 JFLAP 中输入的每个字符串。但是为它手动创建一个解析树给我没有问题。谁能帮我看一下,看看有什么问题?
computation - L={a^(n)b^(n)c^(n)|n>=1} 的下推自动机 (PDA)
我正在为非上下文无关语言 L={a^(n)b^(n)c^(n)|n>=1} 构建一个下推自动机,并想到了两种方法。
第一种方法:-
我认为对于字符串中的每个“a”,我会将 3 个“a”推入堆栈,对于字符串中的每个“b”,我现在将为字符串中的每个“c”从堆栈中弹出 2 个“a”我堆栈中仍会有 1 个“a”。
第一种方法的问题:-生成的语言变成这样 L={a^(p)b^(m)c^(n)| p>=1 并且无法确定如何定义 m 和 n }
第二种方法:-
我们知道 L={ a^(n)b^(m)c^(m)d^(n) | n>=0 } 是上下文无关语言,L={ wxw | w∈(a,b)* } 也是上下文无关语言。
所以,我认为 L={ a^(n)b^(m)b^(m)c^(n) | n>=1 和 m=floor((n+1)/2) }
第二种方法的问题:-不知道我们是否可以在不干扰堆栈元素的情况下在 PDA 中计算 floor(n+1/2)。
请帮助确定如何在第一种方法中定义 m 和 n 以及如何在 PDA 中找到 floor((n+1)/2) 。
如果需要,两者都可以使用 JFLAP 文件。