问题标签 [pushdown-automaton]
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.
pushdown-automaton - 构建下推自动机
在我的演讲中,我们给出了一个下推自动机的例子,它接受以下语言 {(a^n)(b^n): n 大于或等于零}。
我的问题是为什么状态 p 和 f 是必要的?你不能只使用 state s 吗?
另外我想知道在构建 PDA 时是否有一种方法可以知道您需要多少个状态以及堆栈字母表是什么?还是你只需要直观地解决它?
context-free-grammar - 给定 L 的 CFG 提示
所以我给定的 L = {(a^m)(b^n)(c^k)|m,n,k >= 0,并且 m=k、n=k 或 m=n}
我发现棘手的部分是m=k、n=k 或 m=n的最终规则。我无法完全找到将其纳入 CFG 规则的方法。关于(a^m)(b^n)(c^k)的第一部分,我相信这只是 a、b 和 c 的有序序列。看形式:aaaaabbbbbccccc
就像我说的,我认为我所做的上述尝试涵盖了初始形式,但没有翻译给定的规则。
我在想的事情是,我可以以这样一种方式来构建它,即 a&b 或 b&c 被统一添加。我想做的事情可能是:
这样,当我们将aS1b放入S1时,我们会看到我们的 a和b等价地增长:aaaS1bbb意味着m和n可能相等。我无法弄清楚的是如何确保在语法中实现这一点。以这种方式使其成为可选的,但不是必需的。
有什么想法或技巧可以解决这个问题吗?
c# - 如果数据库没有记录,则返回声明的 int
我面临一个问题。就我而言,我想选择 max 和 + 1 来创建一个新的收据编号,如果它是一个新的收据,它将创建一个新的编号,如下所示的代码。但是,我收到了错误
对象不能从 DBNull 转换为其他类型
这是我的代码。
这个系统在 PDA 上运行,所以我使用这个 web 服务来调用数据库
****** 更新 ******
感谢所有的答案,SimpleVar 提供了正确的答案,它解决了我的问题。再次感谢!
trace - PDA(下推自动机)跟踪 - 我不明白答案
我正在学习 PDA,并且我知道如何为给定的绘制 PDA 跟踪一组符号或字母表。但是,我不知道如何跟踪给定的 PDA(以书面形式)见下文。
所以这是一个书面的PDA:
问题问:
答案是:
我不明白堆栈符号。我想如果ε
在堆栈的末尾有一个输入被接受:S?
如果有人可以向我解释,我将不胜感激
谢谢
automation - 什么是语言 a^mb^n 的 PDA(下推自动机),其中 n
给定语言 a 到 mb 到 n 次方的下推自动机如何,其中 n 小于 m a^mb^n / n
Numpy 数组的快速插值/重采样 - Python
给定语言 a 到 mb 到 n 次方的下推自动机如何,其中 n 小于 m a^mb^n / n
Numpy 数组的快速插值/重采样 - Python
给定语言 a 到 mb 到 n 次方的下推自动机如何,其中 n 小于 m a^mb^n / n
Numpy 数组的快速插值/重采样 - Python
目前,我已经编写了一些插入到管道中的 Python 代码。
传入的数据以形状为 (1,512,19,25) 的 numpy 数组形式出现。我使用scipy.ndimage.interpolation.zoom
使阵列成形 (1,512,38,50)。这可以通过一次调用函数来完成。基本上,它将每个 (19,25) 块的大小调整为 (38,50)。
稍后在代码中,当数据向另一个方向移动时,不同的数据再次在另一个方向 (38,50) 上调整大小到 (19,25)。
一切都按实施方式进行,但是我发现这真的很慢。例如,我测试了scipy.ndimage.interpolation.zoom
调整图像文件大小的函数,它比 Matlab 的imresize
函数慢得多。
在 Python 中有哪些更快的方法来做到这一点?
computer-science - 形式文法可以生成其他文法吗?
我在一个计算类的模型中,我们只是在讨论形式语法。正如我们所定义的,形式文法是:
- 一些终端符号
- 一些非终结符号
- 一个开始符号
- 一些生产规则
鉴于文法生成字符串,您似乎可以选择一种文法来生成另一种文法。几分钟的搜索似乎并没有在这个领域产生太多的讨论。我的问题主要是:
- 这是计算机科学中一个有趣的问题吗?
- 您可以通过生成生成它们的语法来压缩语法,还是复杂性不可减少?
theory - 生成下推自动机以确保两个相等的子字符串出现
我被要求生成一个下推自动机 (PDA) 以确保 01 子串的数量与 10 个子串的数量相同,同样,00 子串的数量与 11 个子串的数量相同。
继承人的问题:
令 L1 ⊆ {0, 1}* 为 01 子串数量与 10 个子串相同,00 子串数量与 11 个子串相同的字符串语言。(注意:000 有两个 00 子串)产生一个下推自动机,它可以识别语言 L1。
到目前为止,我已经尝试过制作 CFG,以后可以将其转换为 PDA。那里没有运气,因为我似乎无法生成 CFG 来确保满足这两个条件。
我尝试了许多 CFG 语法规则的变体,类似于:
我还尝试将每次出现的 01、10、00、11 分别存储为 PDA 堆栈中的 A、B、C、D。我天真地以为我可以匹配并弹出 A 与 B 和 C 与 D 的匹配和弹出,任何剩余的字符都会提醒我不满足条件。
任何人都可以提供一个提示来引导我朝着正确的方向前进吗?
pushdown-automaton - 具有不相等元素的下推自动化
有一种语言 L = {0,1}^* 问题是 1 和 0 不应该是相等的数字。我如何在 PDA 自动机中呈现它?
提前致谢!