小编fle*_*254的帖子

具有多个开始状态的 NFA 到 DFA 转换

因此,我可以采用具有单个起始状态的给定 NFA 并将其转换为等效的 DFA 很容易,但是当涉及具有多个起始状态的 NFA 时,我感到很困惑。

由于 DFA 只能有一个起始状态(如果我是正确的),我怎么知道 NFA 中的两个起始状态中的哪一个成为 DFA 中的唯一起始状态。

作为参考,这是我要转换的 NFA:

   N|   a   |   b   |   c   |
____________________________
 ->0| {0,2} | {0,3} |  ---  |
*->0|  {0}  |  {0}  |  {3}  |
   0|  {2}  |  ---  | {2,3} |
 * 0|  {2}  |  ---  |  {3}  |
Run Code Online (Sandbox Code Playgroud)

其中: -> = 初始状态,* = 接受状态,--- = 空集,

regex dfa nfa

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

C++ String - 超出范围错误

我正试图在我正在编写的Hangman程序中使用Strings,并且无法让它们工作,因此尝试在更简单的基础上与它们合作并且我仍然没有运气.

至于我在参考文献中在线阅读以及其他人所说的这段代码应该有效:

#include <cstdio>
#include <cstdlib>
#include <cstring>
using namespace std;

int main (int argc, char** argv){

  string word = {"Hello"};
  int length = strlen(word);

}
Run Code Online (Sandbox Code Playgroud)

但我得到这个编译器错误:

'string'未在此范围内声明

因此,'word'也未在范围内声明.

谁能看到我做错了什么?我在Ubuntu上使用g ++编译器,如果这有所不同,不知道哪个版本.

c++ string

0
推荐指数
1
解决办法
1095
查看次数

标签 统计

c++ ×1

dfa ×1

nfa ×1

regex ×1

string ×1