a*b* 是正则吗?

2024-03-28

I know anbn for n > 0 is not regular by the pumping lemma but I would imagine a*b* to be regular since both a,b don't have to be the same length. Is there a proof for it being regular or not?


回答你的问题:

imagine a*b*是正则的,有没有证据证明它是正则的?

无需想象,无需表达a*b*叫做regular e表达 http://en.wikipedia.org/wiki/Regular_expression(re),并且正则表达式仅适用于正则语言。如果一种语言不是正则语言,那么正则表达式也是不可能的,如果一种语言是正则语言,那么我们总是可以用某种正则表达式来表示它。

Yes, a*b*代表一种常规语言。

语言描述: 任意数量a后面跟着任意数量的b (by 任何数字我的意思是零(包括空^)或更多次)。一些示例字符串是:

{^, a, b, aab, abbb, aabbb, ...}

RE 的 DFAa*b*将如下:

      a-            b-
      ||            ||
      ▼|            ▼|
---►((Q0))---b---►((Q1))

In figure: `(())` means final state, so both `{Q0, Q1}` are final states.

您需要了解以下基本概念:

What is basically a regular language? And why an infinite language `a*b*` is regular whereas languages like `{ anbn | n > 0 }` are not regular!!

如果一种语言(一组)​​在处理该语言的字符串时只需要在任何时间保存有界(有限)量的信息,则该语言(集合)被称为常规语言。

那么,什么是“有界”信息?
例如:考虑风扇“开”/“关”开关。通过查看风扇开关我们可以得知风扇是否处于工作状态on or off状态(这是有界或有限的信息)。但我们无法判断风扇已切换“多少次”on or off在过去! (为了记住这一点,我们需要一种机制来存储“无限”数量的信息来计数——“多少次”,例如我们的汽车/自行车中使用的仪表)。

The language { anbn | n > 0 } is not a regular language because here n is unbounded(it can be infinitely large). To verify strings in the language anbn, we need to memorize how many a symbols there are and it requires an infinite memory storage to count because the number of a symbols in the string can be infinitely large!

That means an automata is only capable of processing strings of the language anbn if it has infinite memory e.g PDA.

然而,a*b*本质上当然是正则的,因为存在有界限制——即b可能会在一些之后出现a ( and a不能来之后b)。这就是为什么这种语言的每个字符串都可以很容易地被我们拥有有限内存的自动机处理(或识别) - 并且有限自动机是一类内存有限的自动机。是的,在有限自动机中,我们的状态内存量是有限的。

(有限自动机中的记忆以状态的形式存在Q根据自动机原理:任何自动机只能有有限的状态。因此,有限自动机的内存是有限的,这就是常规语言的自动机类被称为有限自动机的原因。你可以把有限自动机想象成一个没有内存的CPU,它有有限的寄存器来记住它的内部状态)

有限状态⇒有限内存⇒只有在处理字符串时需要在任何时刻存储有限内存的语言才能被处理⇒该语言称为常规语言

缺乏外部存储器是有限自动机的限制⇒或者我们可以说有限自动机定义的语言类别(称为常规语言)的限制。

你应该阅读其他答案“正则语言的有限性” https://stackoverflow.com/a/20818068/1673391学习常规语言的范围。

边注::

  • language { anbn | n > 0 } is subset of a*b*
  • Also a language { anbn | 10>100 n > 0 } is regular, a large set but regular because n is bounded, hence finite automata and regular expression is possible for this language.

您还应该阅读:如何证明一种语言是正则语言? https://cs.stackexchange.com/questions/1331/how-to-prove-a-language-is-regular

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

a*b* 是正则吗? 的相关文章

  • 0,1 上的双字补码的上下文无关语法是什么? [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 L ww w 属于 0 1 的补集的 CFG 是多少 首先 请注意以下事实 任何奇怪的单词都是语言的一部分 让我们定义以下语言 L1 w1w w 0 1 L0 w0w w 0 1 这
  • 涉及多个变量的程序的时间复杂度

    最近 我被要求创建一个程序来查找文本片段中的最佳匹配 我已经成功编写了这个程序 但我确实对其时间复杂度有疑问 问题定义如下 给定一个查询 查找文档中出现的查询词并突出显示最佳标记 我的程序花费的时间 O m n p here m 文档长度
  • 在JAVA中按特定单词分割字符串

    字符串 S 乘 3 加加 3 3 1 我想得到两个字符串数组 第一个是 乘 加 加 另一个输出是 3 3 3 1 我怎么才能得到它 我尝试使用 String operators s split 0 9 String operands s s
  • 使用正则表达式表示标识符

    C 编程语言中识别标识符的常规定义为 letter gt a b z A B Z digit gt 0 1 9 identifier gt letter letter digit 该定义将生成以下形式的标识符 标识符 a zA Z a zA
  • 如何确定上下文无关语法是否描述了常规语言?

    给定任意上下文无关语法 我如何检查它是否描述了常规语言 我不是在寻找考试 技巧 我正在寻找一种可以编写代码的万无一失的机械测试 如果有帮助 这里是我可能会收到的 CFG 作为输入的示例 具体来说 请注意 答案一定比仅仅寻找左递归或右递归复杂
  • 证明某种语言正则

    在我的计算理论课上 我们的作业是证明一种语言是正规的 该语言定义为 B 1ky y is in 0 1 and y contains at least k 1s for k gt 1 在我看来 这种语言需要一个下推自动机来为此创建一台机器
  • 有没有办法否定正则表达式?

    给定一个正则表达式R它描述了一种常规语言 没有花哨的反向引用 有没有一种算法方法来构造正则表达式R 描述除以下描述的单词之外的所有单词的语言R 应该可以作为维基百科 http en wikipedia org wiki Regular la
  • 简单英语中的乔姆斯基层次结构

    我试图找到乔姆斯基提出的 4 个级别的正式语法 无限制 上下文相关 上下文无关 常规 的简单 即非形式 解释 我已经很久没有学习正式语法了 各种定义现在让我难以想象 明确地说 我是not寻找随处可见的正式定义 例如here http en
  • 有没有一种正则语言来表示正则表达式?

    具体来说 我注意到正则表达式的语言本身并不是正则的 因此 我无法使用正则表达式来解析给定的正则表达式 我需要使用解析器 因为正则表达式本身的语言是上下文无关的 有没有什么方法可以用可以使用正则表达式解析结果字符串的方式来表示正则表达式 注意
  • 为什么正则语言的补语仍然是正则语言?

    根据我的教科书 只要L1是正则语言 L1 A L1的补集就是正则语言 A 不是还包括上下文无关语言 上下文相关语言和递归可枚举语言吗 A L1 也将包括所有这些 不是吗 那怎么可能有规律呢 在有限状态机的表示下 我理解为什么补码仍然是常规语
  • 泵送引理(常规语言)

    我需要一些帮助来解决泵引理问题 L a b c a L lt b L lt c L 这是我到目前为止得到的 y uvw is the string from the pumping lemma 我让 y abbc n n 是泵引理的长度 y
  • “结合更牢固”这句话是什么意思?

    我知道这可能是一个新手问题 但我试图理解这句话 来自一篇关于使用 EBNF 的元语言的论文 Logical and binds stronger than logical or 在此之前它说 Conditions are condition
  • 为给定的正则表达式绘制最小 DFA

    绘制最小的直接且简单的方法是什么DFA 接受与给定相同的语言Regular Expression RE 我知道可以通过以下方式完成 Regex to NFA to DFA to minimized DFA 但有没有什么捷径呢 像 a b a
  • 是否有可能有匹配所有有效正则表达式的正则表达式?

    是否可以仅使用正则表达式来检测给定字符串是否是有效的正则表达式 假设我有一些字符串 它们可能是也可能不是有效的正则表达式 我想要一个正则表达式与对应于有效正则表达式的那些字符串相匹配 那可能吗 或者我是否使用一些更高级别的语法 即上下文无关
  • 消除立即左递归

    我明白 为了从包含 A A 形式产生的语法中消除立即左递归 我需要将其替换为 A A 和 A A 我有以下产生式 我需要消除立即左递归 E E T T E E T T T T F T F E id 我可以看到 消除后第一个生产变成 E TE
  • a* 与 (a*)* 相同吗?

    快速提问 如果a是一个正则表达式 那么这是真的吗a a Is a 有效的表达 如果是 那么任何人都可以解释为什么它与a 我很抱歉在这里提问 但我无法通过谷歌找到任何东西 Yes a a 是一样的 两者都生成相同的语言 即字符串包含的任何数字
  • 如果我们知道一个CFG只生成正则语言,那么我们能得到对应的正则表达式吗?

    众所周知 给定一个正则语法 我们有算法来获取它的正则表达式 但是如果给定的语法是上下文无关语法 但它只生成常规语言 就像 S gt aAb A gt bB B gt cB d 有没有现有的算法可以得到通用的正则表达式 Thanks 从最一般
  • a*b* 是正则吗?

    I know anbn for n gt 0 is not regular by the pumping lemma but I would imagine a b to be regular since both a b don t ha
  • 瑞典 SSN 正则表达式拒绝特定年龄以下的用户

    我的正则表达式有问题 我已经可以验证正确的瑞典社会安全号码以符合这些标准 YYMMDDNNNN 年月日 NNNN 年年月日DDNNNN YYYYMMDD NNNN 但如果用户未满 18 岁 我也想拒绝该用户注册 我的常规表达现在是这样的 有
  • 旅行商问题中 NP 难问题和 NP 完全问题的混淆

    旅行商优化 TSP OPT 是一个NP难题 旅行商搜索 TSP 是NP完全问题 然而 TSP OPT 可以简化为 TSP 因为如果 TSP 可以在多项式时间内求解 那么 TSP OPT 1 也可以 我认为要将 A 简化为 B B 必须与 A

随机推荐

  • WordPress 重写仅向页面添加基本前缀

    我在尝试完成一个项目时遇到了一个问题 我将当前的永久链接结构设置为 postname 我创建了自己的函数 只为帖子提供前缀 因此我的帖子被重写为 prefix postname 我的问题是我想更改的永久链接pages正如我对帖子所做的那样
  • 在哪里可以找到 libsystem_c.dylib 的源代码?

    我的堆栈跟踪中有一行奇怪的行 我想进一步调查 12 libsystem c dylib 0x3aa272dc free 168 如果我理解正确的话 libsystem c 是 C 标准库 iOS使用的版本是开源的吗 我在哪里可以获得该来源
  • 使用 nodemailer 发送邮件 - 来自字段的电子邮件不正确

    尝试使用 nodemailer 设置联系表单 这是我的 app js 中的内容 EMail configuration var smtpTransport nodemailer createTransport SMTP service Gm
  • 具有自定义类的多维数组

    我正在寻找一个数组声明 初始化和访问数组 该数组将具有 表 数组 及其行 将如下所示 CusomClass1Instance Number CusomClass2Instance CusomClass1Instance Number Cus
  • 如何在不先创建索引的情况下查询变量字段并应用排序?

    编辑 我简化了问题和示例 因为这个问题仅 一旦您开始使用即适用orderBy 我有一个用户集合 其中每个用户都订阅了许多变量 如下所示 user var1 true var2 true var2 true metric 10 我这样做是因为
  • ssrs 2008级联参数

    我目前正在使用 SQL 2008 R2 和 SQL Server Report Service 2008 我正在使用以下参数创建报告 Staff name Client name Lab lab date 等 当用户选择 Staff 名称时
  • Common Lisp 类型声明未按预期工作

    当我在 Common Lisp 中定义一个函数时 如下所示 defun foo n declare type fixnum n n 42 我期待一个像这样的电话 foo a 立即失败 但在调用时失败 是个declareform 不保证静态类
  • 如何绕过 .NET 中未处理的异常处理来克服 StackOverflowException

    在遇到 NET 中的一些 StackOverflowExceptions 后 我注意到它们完全绕过了 NET 提供的未处理的异常处理程序 Application ThreadException AppDomain UnhandledExce
  • JavaScript - 修复计算器的 da*n 插入符号

    我正在用 javascript 制作一个计算器 到目前为止它的计算结果是 sin cos tan cot sec csc并且arc and hyberbolic所有亚型中 sqrt cbrt y th root and pow 问题是我不想
  • 检索早于提要中包含的 RSS 帖子

    创建 RSS 阅读器时 您可以下载 RSS 提要链接指向的 XML 格式文档 并且可以手动解析它或使用 SyndicateFeed 命名空间中的功能 因此 如果我们以 Scott Guthrie 的博客为例 您下载 RSS feed 文档h
  • 将 Highcharts 最大 Y 值设置为精确值而不进行四舍五入

    每次我在 Highcharts 中设置最小值和最大值时 我都不会得到具有我发送的精确最小值和最大值的图表 但总是有些接近的值 似乎 Highcharts 正在为轴选择一个间隔范围 如果我的最大值不符合正确的间隔 它就会被忽略或四舍五入 例如
  • 防止 VS Code IntelliSense 在函数名称后插入 ={}

    自上次 Visual Studio Code 更新以来 我在 IntelliSense 自动完成方面遇到了问题 一般来说 如果我想将函数设置为 prop 这是此问题最常见的用例 那么 VS Code 不只是插入函数名称 而是添加 括号 那么
  • 如何在没有 jQuery 的情况下模拟 ajaxStart 和 ajaxStop?

    我一直在查看 jQuery 代码 但它有点庞大 这是一件容易的事吗 知道怎么做吗 我想要这样做的原因是因为我不想将它用于网页 而是用于 C 应用程序 该应用程序需要知道何时有 ajax 活动在网页浏览器 http msdn microsof
  • 如何使用php使用多个数据库?

    我在互联网上阅读了多个问题 包括这个堆栈溢出问题 https stackoverflow com questions 274892 how do you connect to multiple mysql databases on a si
  • D3.js - 如何添加具有默认滚轮鼠标缩放行为的缩放按钮

    因此 我使用默认的 d3 behavior zoom 获得了带有鼠标缩放的世界地图 并进行了限制以防止地图被完全拖出页面 开始工作时很痛苦 但现在可以了 我现在的问题是 这个项目还需要界面中无用的缩放 和 按钮 并且我找不到具有两种缩放类型
  • 使用 JQuery 进行本地化?

    我不知道如何使用 JQuery 处理本地化 我想设置一个innerHTML使用德语文本 但如果浏览器配置为使用英语 那么我想设置英语文本 在 PHP 中 我使用 gettext 来完成此类操作 但是如何在 JavaScript jQuery
  • Automapper:检查 MapFrom 中的 null

    使用版本 4 制作地图时如何检查 null 我尝试过 Value 但那不存在于Null Mapper CreateMap
  • 我应该如何在 Java 中为 Android 手机实现准确的音高检测?

    我想开发一个应用程序 需要通过 Android 手机的麦克风对乐器进行精确的音高检测 我读到的大多数建议都涉及使用快速傅里叶变换 FFT 但他们提到它在准确性和处理能力方面存在问题 考虑到它应该在智能手机上顺利运行 一个答案建议误差幅度为
  • net-snmp解析代码,如何解析MIB?

    我在学习代码库 解析MIB In parse c and parse h代码保留一个哈希桶 indexed bucket tree list 还有一个树结构 其中包含一个指向的next指针Next node in hashed list o
  • a*b* 是正则吗?

    I know anbn for n gt 0 is not regular by the pumping lemma but I would imagine a b to be regular since both a b don t ha