【问题标题】:How many equivalence classes in the RL relation for {w in {a, b}* | (#a(w) mod m) = ((#b(w)+1) mod m)}{a, b}* 中 {w 的 RL 关系中有多少等价类 | (#a(w) mod m) = ((#b(w)+1) mod m)}
【发布时间】:2020-07-02 16:07:21
【问题描述】:

RL 关系中有多少个等价类

{w in {a, b}* | (#a(w) mod m) = ((#b(w)+1) mod m)}

我正在查看一个过去的测试问题,它为我提供了选项

  • m(m+1)
  • 2m
  • m^2
  • m^2+1
  • 无限

但是,我声称它是 m,并且我想出了一个自动机,我相信它可以接受这种包含 3 个状态的语言(对于 m=3)。

我说的对吗?

【问题讨论】:

  • 您的 DFA 无法接受字符串“bba”(它从状态 a2 到 a3,再到 a1,再回到 a3,输入用完并且不处于接受状态)。所以,你的 DFA 不好。
  • @Patrick87 字符串 bba 不在该语言中。语言是 a 比 b 多一个的所有单词(mod m)
  • 啊,你是对的,我看错了关系。

标签: automata finite-automata


【解决方案1】:

其实你是对的。要看到这一点,请观察 #a(w) 和 #b(w) 的差异,#a(w) - #b(w) 模 m,才是最重要的;并且这个差模m只有m个可能的值。因此,m 个状态总是足以接受这种形式的语言:只需将与适当差异对应的状态设为接受状态即可。

在您的 DFA 中,a2 对应于 0 的差异,a1 对应于 1 的差异,a3 对应于 2 的差异。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-02
    • 2015-01-31
    • 2021-10-15
    相关资源
    最近更新 更多