为 L = (na(w)-nb(w)) mod 3>0 构造 DFA

Posted

技术标签:

【中文标题】为 L = (na(w)-nb(w)) mod 3>0 构造 DFA【英文标题】:Construct DFA for L = (na(w)-nb(w)) mod 3>0为 L = (na(w)-nb(w)) mod 3>0 构造 DFA 【发布时间】:2018-03-18 04:18:56 【问题描述】:

根据标题:

L = (na(w)-nb(w)) mod 3>0

字母 = a,b

我找到了这个问题的两个答案:

在此解决方案中,我们的语言被接受。

然而,

w = b

也被接受。

在下一个解决方案中:

我们的问题

w = b

在这里解决了,但是

w = aaab

不被接受。

我该如何解决这个问题?我在互联网上找不到合适的答案。

【问题讨论】:

接受b有什么问题? 我不确定-1 mod 3 是否可以接受。应该吗? 取决于您的mod 是如何定义的。 -1 mod 3 -12 在你的系统中吗? 我以为是-1。不过,我明白你的意思。如果 -1 mod 3 = 2,自动机 1 是正确的。如果我们在系统中定义-1 mod 3 = -1,是否仍然可以构造这个DFA? 我不确定。我的直觉是不,因为这看起来非常令人兴奋。 【参考方案1】:

假设我们有以下mod的定义:

x mod y =        x,       if 0 <= x < y
            (x - y) mod y, if 0 <  y <= x
                  x,       if -y < x < 0
            (x + y) mod y, if x <= -y < 0
            -(-x mod -y)   if y < 0
          

所以我们的模数是这样工作的:

3 mod 5 = 3
6 mod 5 = 6-5 mod 5 = 1 mod 5 = 1
-3 mod 5 = -3
-6 mod 5 = -6+5 mod 5 = -1 mod 5 = -1
-6 mod -5 = -(6 mod 5) = -1
6 mod -5 = -(-6 mod 5) = -(-1) = 1

我们的语言是 L = (n_a(w) - n_b(w)) mod 3 > 0

让我们定义A := n_a(w)B := n_b(w)。所以我们需要使用mod的定义来解决(A - B) mod 3 &gt; 0。我们有五个案例:

    如果 0 0 false,所以我们可以排除这种可能性。

    如果 0 = 3 + B,则 (A - B) mod 3 = (A - B - 3) mod 3。根据假设,A - B - 3 >= 3 + B - B - 3 >= 0,所以我们仍然处于情况 1 或 2。如果我们仍然处于情况 2,我们可以重复此过程直到我们最终达到案例 1,我们将看到我们不能有 A - B - 3k = 0;也就是说,对于任何正的 k,它不可能是 A = B + 3k。

    如果 -3

    如果 A - B

    我们不可能在这种情况下,因为 3 > 0。

我们不得不从我们的语言中去掉以下字符串:

A = B A = B + 3k A

所以我们只保留 a 多于 b 的字符串,其中 A - B 不能被 3 整除。假设这种语言是正则的。考虑语言中的字符串 (b^p)(a^(p+1))。根据抽水引理,我们应该可以抽bs的数量;但是我们可以得到比as更多的bs。所以语言不可能是正则的。

如果我们对x mod y 采用更常见的定义(不一定更正确):

x mod y =         x       , if 0 <= x < y
                (x - y)    , if 0 < y <= x
            (x + y) mod y  , if -y < x < 0
            -(-x mod -y)   , if y < 0
          

根据这个定义:

    在情况 1 中,我们抛出 A = B 在情况 2 中,我们抛出 A = B + 3k 在情况 3 中,我们抛出 A = B - 3k 由于 3 > 0,案例 4 不适用

现在我们只排除了 A mod B = 0 (mod 3) 的情况。这种语言是常规的并且具有 DFA:

    +------------a-------------+
    |                          |
    |  +---b----+  +---b----+  |
    |  |        |  |        |  |
    V  V        |  V        |  |
    (q0)---a--->(q1)---a--->(q2)
--->(q0)
    (q0)---b--->(q3)---b--->(q4)
    ^  ^        |  ^        |  |
    |  |        |  |        |  |
    |  +---a----+  +---a----+  |
    |                          |
    +------------b-------------+

【讨论】:

以上是关于为 L = (na(w)-nb(w)) mod 3>0 构造 DFA的主要内容,如果未能解决你的问题,请参考以下文章

将非 NA 单元格向左移动

ini Dodanie subomeny w Apache na Webserv

Leetcode 492. 构造矩形

2-3 感知机梯度下降法的推导过程

sql #uta #sql blad w generowaniu zamowien na karty

LeetCode——492. 构造矩形(Java)