小编Dr.*_*mer的帖子

将 NFA 转换为正则表达式

我在这个网站上发现了一个同样的问题,答案是一个描述如何将 NFA 转换为 regexPDF。但这不起作用,因为此方法有一些条件:

  1. 有从初始状态到所有其他状态的转换,并且没有到初始状态的转换。
  2. 有一个接受状态,只有进入它的转换(没有传出转换)。
  3. 接受状态不同于初始状态。
  4. 除了初始状态和接受状态外,所有其他状态都通过转换连接到所有其他状态。特别是,每个状态都有一个到它自己的转换。

在我的例子中,开始状态只是进入下一个状态,而不是所有状态(例如,q0 进入 q1,但不进入 q2、q3),并且有到开始状态的转换。

那么将 NFA 转换为正则表达式的最简单方法是什么?我没有给出 NFA 示例,因为我没有具体的示例,这只是一个一般性问题,因为我遇到了这种 DFA,其中开始状态未与所有状态连接,并且都转换为开始状态。

我想要一个通用算法来转换这种 NFA。

regex nfa

5
推荐指数
1
解决办法
4136
查看次数

Pygame 等待用户按键

我正在搜索一种方法,程序停止并等待用户按下特定键。我可以用一个while循环来实现这个吗?我需要最好的算法,如果存在等待的内置功能,以避免循环。我在pygame官方网站上找到了一些信息,但没有任何帮助。

这是一个测试算法,但不起作用:

key = "f"
while key != "K_f":
     key = pygame.key.get_pressed()
     if key[Keys.K_f]:
         do something...
Run Code Online (Sandbox Code Playgroud)

pygame keypress python-3.x

5
推荐指数
2
解决办法
2万
查看次数

C++库,静态和动态

我正在阅读一篇关于c ++库和静态/动态库和链接的文章.我的问题如下:

1)我们必须编译要插入到库中的文件,然后使用命令ar -crsv创建库文件?(是必须以lib开头并以.a结尾的存档吗?)

2)g ++的命令-I和-L一次使用?向编译器"说"到哪里是库?或者每次编译使用库的源代码?

3)必须使用#include <>包含Libray?如果是的话用什么名字?

我不太了解静态库和静态链接的含义以及动态链接的含义是什么?我所理解的是,使用静态库和链接是指我们将程序与库合并,以便在原始位置不需要原始库?对于Dynamic,我所知道的是代表动态链接库的DDl.那么我能想到的这个DDL的唯一区别是加载到主内存中,但我很困惑

任何有知识的人都可以把我的 - 可能是错的 - 知识变成正确的顺序并解释更多这个术语吗?

谢谢!

c++ dll shared-libraries static-libraries

2
推荐指数
1
解决办法
371
查看次数