计算两个无限正则表达式解集是否不相交

2023-11-23

计算两个任意正则表达式是否有任何重叠的解决方案(假设可能)。

例如,这两个正则表达式可以通过暴力证明没有交集,因为两个解集是可计算的,因为它是有限的。

^1(11){0,1000}$ ∩     ^(11){0,1000}$        = {}
{1,111, ..., ..111} ∩ {11,1111, ..., ...11} = {}
{}                                          = {}

但更换{0,1000} by *消除暴力解决方案的可能性,因此必须创建更智能的算法。

^1(11)*$ ∩ ^(11)*$ = {}
{1,^1(11)*$} ∩ {^(11)*$} = {}
{1,^1(11)*$} ∩ {11,^11(11)*$} = {}
{1,111,^111(11)*$} ∩ {11,^(11)*$} = {}
.....

在另一个类似的问题 one answer是计算交集正则表达式。这可能吗?如果是这样,人们将如何编写算法来完成这样的事情?

我认为这个问题可能是停止问题.罢工>

EDIT:

我已使用公认的解决方案为示例问题创建 DFA。很容易看出如何在状态图上使用 BFS 或 DFSM_3确定最终状态是否来自M_3是可达的。

DFA solution


它不属于停机问题的范围;判断正则语言的交集是否为空可以如下解决:

  1. 为第一语言构建 DFA M1。
  2. 构建第二语言的 DFA M2。提示:克莱恩定理和幂集机器构造
  3. 为 M1 与 M2 相交构造 DFA M3。提示:笛卡尔积 机器构造
  4. 判断L(M3)是否为空。提示:如果 M3 有 n 个状态,并且 M3 不接受任何长度不大于 n 的字符串,则 L(M3) 为空...为什么?

每一件事情都可以通过算法完成和/或检查。此外,自然地,一旦 DFA 识别出您的语言的交集,您就可以构建一个正则表达式来匹配该语言。如果您从正则表达式开始,您就可以制作 DFA。这绝对是可以计算的。

EDIT:

因此,要构建笛卡尔积机,您需要两个 DFA。令 M1 = (E, q0, Q1, A1, f1) 且 M2 = (E, q0', Q2, A2, f2)。在这两种情况下,E 是输入字母表,q0 是起始状态,Q 是所有状态的集合,A 是接受状态的集合,f 是转换函数。构造 M3,其中...

  1. E3 = E
  2. Q3 = Q1 x Q2(有序对)
  3. q0'' = (q0, q0')
  4. A3 = {(x, y) | A1 中的 x 和 A2 中的 y}
  5. f3(s, (x, y)) = (f1(s, x), f2(s, y))

如果我没有犯任何错误,L(M3) = L(M1) 与 L(M2) 相交。整洁吧?

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

计算两个无限正则表达式解集是否不相交 的相关文章

  • 大数据使用什么数据结构

    我有一个包含一百万行的 Excel 工作表 每行有 100 列 每行代表一个具有 100 个属性的类的实例 列值是这些属性的值 哪种数据结构最适合在这里使用来存储数百万个数据实例 Thanks 这实际上取决于您需要如何访问这些数据以及您想要
  • 实施二分查找有哪些陷阱? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 二分查找比看起来更难实现 虽然二分搜索的基本思想相对简单 但细节可能出人意料地棘手 Donald Knuth 新的二分搜索实现中最有可
  • 从 html 属性中删除单引号和双引号,并且除 href 和 src 之外的所有属性上都没有空格

    我正在尝试从 html 属性中删除单引号和双引号 这些属性是没有空格的单个单词 我写了这个有效的正则表达式 type title data toggle colspan scope role media name rel id class
  • 举例解释bpe(字节对编码)?

    有人可以帮忙解释一下背后的基本概念吗BPE模型 除了这张纸 https arxiv org abs 1508 07909 目前还没有那么多解释 到目前为止我所知道的是 它通过将罕见和未知的单词编码为子词单元序列来实现开放词汇表上的 NMT
  • Java递归方法求阶乘返回负输出[重复]

    这个问题在这里已经有答案了 我知道这是溢出 但问题是 20 是相对较小的数字 这不应该发生 对吧 有没有更好的方法来查找大数 例如 1000 的阶乘 而不会得到这种奇怪的结果 public class RecursiveFunctionsE
  • 为什么我的 javascript regex.test() 给出交替结果[重复]

    这个问题在这里已经有答案了 可能的重复 Javascript 正则表达式返回 true 然后 false 然后 true 等等 https stackoverflow com questions 2630418 javascript reg
  • 以 O(1) 计算汉明权重 [重复]

    这个问题在这里已经有答案了 在二进制表示中 汉明权重是 1 的数量 我偶然发现了网络并找到了一个 O 1 的答案 v v v gt gt 1 0x55555555 v v 0x33333333 v gt gt 2 0x33333333 in
  • 如何用约束标记一大组“传递群”?

    在 NealB解决方案之后进行编辑 与以下解决方案相比 NealB的解决方案非常非常快任何另一个 https stackoverflow com q 18033115 answers and 提出了关于 添加约束以提高性能 的新问题 Nea
  • Perl 正则表达式图灵完备吗?

    我见过 Ruby 和 Perl 程序员做了一些事情复杂的代码挑战 https codegolf stackexchange com questions 3596 regex validating regex完全用正则表达式 这前瞻和后瞻 h
  • 为什么这些非捕获正则表达式组不能正常工作?

    所以我花了很多时间在另一个堆栈溢出问题上 同样的问题又出现在上一个问题上 非捕获组并没有像我期望的那样工作 至少我是这么认为的 这是一个愚蠢的例子 类似于其他人的 CSS 测试字符串 这是我的正则表达式 rgb S 这是测试字符串 1px
  • 正则表达式,如果模式在引号中则忽略模式

    编写一个非常简单的脚本解析器作为学校项目的一部分 虽然这不是必需的 但我很好奇是否可以仅使用正则表达式来完成 语法类似于 ASP 其中脚本以 结尾 它只支持一个命令 pr 与echo或Response Write相同 现在我正在使用这个正则
  • 照片马赛克算法。如何在给定基本图像和瓷砖列表的情况下创建马赛克照片?

    Hy 我要做的是创建一个程序 使用 C 或 C 它将 24 位 像素位图和图像集合作为输入 我必须创建一个马赛克图像 类似于使用库的输入图像给定的图像 创建与输入类似的马赛克照片 到目前为止 我可以访问输入的图像像素及其颜色 但我有点卡住了
  • 有没有时间复杂度为O(N)的排序算法?

    大多数排序算法的复杂度为 O NN 或 O NlogN 来实现结果 但是 对于特定的输入集 有些算法的复杂度为 O N 我想知道是否有一种排序算法在所有情况下都具有 O N 的复杂度 如果您只能比较 检查两个项目是否为 正在排序的值 那么您
  • Javascript:删除字符串标点符号并拆分成单词?

    抱歉 如果之前有人问过这个问题 但我正在尝试从这样的字符串中获取单词数组 Exclamation Question Quotes Apostrophe Wasn t Couldn t Didn t 该数组应该看起来像这样 exclamati
  • 数学/算法使图像适合屏幕保留纵横比

    我需要数学 算法方面的帮助来拍摄已知尺寸的图像并适合两个屏幕尺寸之一 720 x 480 或 1280 x 1024 图像尺寸来自 XML 文件 但这些尺寸是 Web 尺寸 我还从 XML 中选择了一些图像 这些图像的分辨率可能比 Web
  • Powershell 将单个字符串与多个正则表达式匹配?

    除了依次迭代每个正则表达式之外 是否有一种更 powershelly 的方式将单个字符串与正则表达式的数组 集合进行匹配 我真正想做的是这样的 database Name match includeRegexArray 考虑到 Powers
  • 为什么 re.findall 在查找字符串中的三元组项时不具体。 Python

    所以我有四行代码 seq ATGGAAGTTGGATGAAAGTGGAGGTAAAGAGAAGACGTTTGA OR 0 re findall r ATG 9 TAA TAG TGA seq 首先让我解释一下我正在尝试做什么 如果这令人困惑
  • 使用正则表达式搜索 Ruby 数组

    你好 我有一个小的 ruby 函数 它可以分割出一个 Ruby 数组 如下所示 def rearrange arr from to sidx arr index from eidx arr index to arr sidx arr sid
  • Python正则表达式非贪婪匹配

    这个问题来自 用Python自动化无聊的事情 一书 atRegex1 re compile r w 1 2 at atRegex2 re compile r w 1 2 at atRegex1 findall The cat in the
  • 根据特定字符获取整个字符串或子字符串

    我有一个包含 MIME 类型的字符串 例如application json 现在我想将其与实际的 HTTP 标头进行比较 在本例中content type 如果标头包含 MIME 类型 那么就很简单 if mimeType contentT

随机推荐

  • 缓存 JavaScript 承诺结果

    我会向服务器发出一次调用以获取项目列表 如何确保仅进行一次调用并且仅处理集合一次以创建键值映射 var itemMap function getItems getAllItemsFromServer then function data d
  • 真正的自定义按钮形状

    给定任何形状 实心圆形 星形 三角形 带有透明区域的位图等 我想知道是否可以 使用最新的 Android API 知道用户是否单击了视图或视图之外 例如 如果我有一个圆形按钮 我想知道用户是否在圆圈内单击 而不是在圆圈外单击 是否可以 如果
  • 在android中捏缩放以获得图像视图?

    我有一个要求 我必须在捏合时放大和缩小图像 如果有人可以建议我使用 Imageview 的捏合缩放功能 请 只需执行以下操作即可获得捏缩放 将您的图像放在资产文件夹中并提供此代码 String imageUrl file android a
  • 如何在 Java 中读写时强制使用 UTF-16?

    我发现您可以通过以下方式指定 UTF 16 作为字符集Charset forName UTF 16 并且您可以通过以下方式创建新的 UTF 16 解码器Charset forName UTF 16 newDecoder 但我只看到指定一个的
  • DrawerNavigator:更改文本颜色

    On react navigation s DrawerNavigator 有没有办法改变项目的文本颜色和背景颜色 By default the color scheme looks like the following 由以下内容初始化
  • 如何使用 ORMLite 正确注释继承类?

    我正在尝试将继承与 ORMLite 一起使用 但通过查看文档和谷歌搜索 我无法确定它是否受支持 我想做的是拥有 public abstract class Person public int id public String name pu
  • 如何使用命令提示符导出 mysql 数据库?

    我有一个非常大的数据库 所以我想使用命令提示符导出它 但我不知道如何导出 我正在使用WAMP 首先检查你的命令行是否识别mysql命令 如果没有转到命令并输入 set path c wamp bin mysql mysql5 1 36 bi
  • Win32 应用程序中“WindowProc”的正确返回值

    在 MSDN 的 Win32 Api 文档中 位于http msdn microsoft com en us library ms633573 28VS 85 29 aspx 在WindowProc 它指出 返回值是消息处理的结果 取决于发
  • 使 bash 脚本在 Linux 和 FreeBSD 之间可移植的正确方法是什么?

    我正在编写一些 bash 脚本 我希望这些脚本可以在我的 Linux 和 FreeBSD 系统上运行 因为我主要在 Linux 上工作 所以我习惯用以下命令启动 bash 脚本 bin bash 但这在 FreeBSD 上不起作用 因为 b
  • Microsoft.Owin.Host.SystemWeb 并仍然在上下文中找不到 owin.Environment 项目

    我已经阅读了很多关于此的帖子 但仍然无法使其发挥作用 我正在使用 Visual Studio 2013 我创建了一个新的 MVC 5 项目 并认为使用新的 facebook 登录集成会很酷 它在我的电脑上的 IIS Express 上运行良
  • Facebook 点赞按钮在 Firefox 中显示,但在 IE 中不显示

    我的页面上有一个使用 XBFML 标签的 Facebook Like 按钮 我认为该代码可以正常工作 因为它可以在 Firefox 中正常工作 但在 IE 8 中 在 IE 7 兼容模式下运行 该按钮根本不显示 如果我将其全部切换到 iFr
  • 在 spring(5.0.0.RELEASE) mvc 中加载 swagger-ui.html 时出现错误

    无法解析引用 因为 无法解析指针 definitions Error 在文档中不存在 我点击了这个链接http www baeldung com swagger 2 documentation for spring rest api 但是当
  • 除了通过其安全方法之外,如何强制 Rust 获取分配的内存的所有权?

    在他 2018 年 2 月题为 Rust 中的内存安全 C 案例研究 威尔 克莱顿写道 Rust 提供了获取原始指针所有权的能力 我们使用它slice from raw parts mut and Box from raw它告诉 Rust
  • Xamarin Android Javascript 和 C# 之间的双向通信

    我正在使用 Xamarin Android 开发一个应用程序 它有一个显示网页的 WebView 我想实现从 WebView 到 C 的 Javascript 之间的双向通信 我可以使用这个从 Javascript 调用 C link 但是
  • Matplotlib 下标

    我知道我们可以在 matplotlib 中生成单个下标 例如 r i 会给我一个下标为 i 的 r 但我想生成一个包含 3 或 4 个字母的下标 例如r ijk应该给我一个下标为 ijk 的 r 当我执行上述操作时 我只得到第一个 i 为下
  • 更新应用程序是否会清除共享首选项或删除应用程序设置的警报?

    我已经在谷歌商店发布了我的应用程序 现在我想更新它 但我想确保我不会丢失应用程序共享首选项中存储的数据 我还在我的应用程序中设置了一些闹钟来启动通知 我也不想丢失它们 我不确定更新应用程序如何工作 它会重写这些东西吗 在全球发布之前我是否可
  • CSS“边距:0自动”不居中

    好的 我明白这个主题已经涵盖了 但我研究了各种解决方案 但收效甚微 我只是不知道为什么会这样margin 0 auto 不管用 我尝试用以下方法补偿填充width calc 33 40px 但这不起作用 任何关于为什么会发生这种情况的帮助以
  • 混合模式程序集是针对运行时版本“2.0.50727”构建的,无法在 4.0 运行时中加载

    我正在使用 Visual Studio 2012 和 Net Framework 4 5 我有2个解决方案 1 WPF应用程序2 类库 dll 类库包含 3 个按钮和一个控件 该控件必须位于 WindosFormsHost 控件内 因为它是
  • IOS 上的图像处理滤镜,如白平衡、曝光、分割色调等

    自一周以来 我一直在尝试为我的 IOS 应用程序实现一些图像处理滤镜 例如白平衡 曝光和分割色调 如 Photoshop 中的那样 但我没有获得实现其中任何一个的标准实现 我找到了 shell 脚本来实现它们图像魔术师 但不知道如何将这些脚
  • 计算两个无限正则表达式解集是否不相交

    计算两个任意正则表达式是否有任何重叠的解决方案 假设可能 例如 这两个正则表达式可以通过暴力证明没有交集 因为两个解集是可计算的 因为它是有限的 1 11 0 1000 11 0 1000 1 111 111 11 1111 11 但更换