東北大学 工学研究科 電気・情報系 2019年3月実施 基礎科目 問題3 情報基礎1
Author
祭音Myyura (co-authored with GPT 5.6 SOL)
Description
日本語原文
以下では非負整数の集合を N で表すものとする。アルファベット Σk={0,…,k−1} 上の任意の文字列 a1⋯an∈Σkn を非負整数として解釈する関数 ϕk:Σk∗→N を
ϕk(a1⋯an)=i=0∑n−1an−iki
と定義する。例えば,ϕ2(1001)=ϕ2(001001)=9 である。また,この関数を拡張し,任意の言語 L⊆Σk∗ に対して ϕk(L)={ϕk(w)∈N∣w∈L} と定義する。例えば,Fig. 3(a) に示す決定性有限状態オートマトン(DFA)の受理する Σ2 上の言語を La とすると,ϕ2(La) は偶数非負整数全体の集合である。本問中の図において,太い矢印で開始状態を指し,二重丸で受理状態を表す。また,ある DFA より状態数の少ない他のいかなる DFA も同じ言語を受理しないとき,その DFA を最簡形 DFA と呼ぶ。
(1) 等式 ϕ2(11001110100)=ϕ4(w) を満たす文字列 w∈Σ4∗ をひとつ与えよ。
(2) 等式 ϕ2(w)=ϕ4(130321) を満たす文字列 w∈Σ2∗ をひとつ与えよ。
(3) 言語 {w∈Σ2∗∣ϕ2(w) は 3 の倍数} を受理する最簡形 DFA を描け。
(4) 言語 {w∈Σ4∗∣ϕ4(w) は 3 の倍数} を受理する最簡形 DFA を描け。
(5) Fig. 3(b) に示す DFA の受理する Σ2 上の言語を Lb とする。等式 ϕ4(L)=ϕ2(Lb) を満たす言語 L⊆Σ4∗ を受理する最簡形 DFA を描け。
(6) Fig. 3(c) に示す DFA の受理する Σ4 上の言語を Lc とする。等式 ϕ2(L)=ϕ4(Lc) を満たす言語 L⊆Σ2∗ を受理する最簡形 DFA を描け。
Fig. 3(a)–(c) の再描画(状態名は転記上の識別子):
Fig. 3(a)
Fig. 3(b)
Fig. 3(c)
题目描述
记 Σk={0,…,k−1},ϕk:Σk∗→N 将字符串解释为 k 进制非负整数,空串取值 0,允许前导零。对语言 L,记 ϕk(L)={ϕk(w):w∈L}。DFA 的转移函数须完备。
(1) 求 w∈Σ4∗,使 ϕ2(11001110100)=ϕ4(w)。
(2) 求 w∈Σ2∗,使 ϕ2(w)=ϕ4(130321)。
(3)(4) 分别画接受数值为 3 的倍数的二进制、四进制串的最小 DFA。
(5) 二进制 DFA Lb 的转移表如下;b0 初始,b1 唯一接受。画最小 DFA 接受某个 L⊆Σ4∗,满足 ϕ4(L)=ϕ2(Lb)。
| 状态 | 0 | 1 |
|---|
| b0 | b0 | b1 |
| b1 | b1 | b2 |
| b2 | b3 | b2 |
| b3 | b2 | b1 |
(6) 四进制 DFA Lc 的转移表如下;c0 初始,c1 唯一接受。画最小 DFA 接受某个 L⊆Σ2∗,满足 ϕ2(L)=ϕ4(Lc)。
| 状态 | 0 | 1 | 2 | 3 |
|---|
| c0 | c0 | c1 | c0 | c1 |
| c1 | c1 | c1 | c0 | c0 |
Kai
(1)(2)
二进制从右起每两位对应一位四进制:
110011101002=1213104,1303214=0111001110012.
第二式去掉最前的 0 也可。
(3)
用 rj 表示目前数值模 3 的余数 j,读入 a 后按 j↦(2j+a)mod3 转移。r0 初始且接受,共 3 状态。
(4)
此时 j↦(4j+a)mod3=(j+a)mod3,仍为 3 状态。
两图中不同余数均可用后缀区分,因此状态数最少。
(5)
取 L={w:ϕ4(w)∈ϕ2(Lb)}。把每位 0,1,2,3 分别替换为 00,01,10,11,在原 DFA 连走两步,即得到下面的四状态最小 DFA。
b1 由空后缀与其他状态区分;在其余三态上,后缀 1,2 的接受结果分别为 (1,1),(1,0),(0,1),故四态不能合并。
(6)
取 L={w:ϕ2(w)∈ϕ4(Lc)}。将四进制边展开为两条二进制边,并同时允许输入前补一个 0,以处理奇数长度;确定化、最小化后为下列五状态 DFA。q0 初始,q1,q3 接受。
五态均可达,且按后缀 ε,0,1,01 的接受结果依次为
q0q1q2q3q4ε010100001001111000111111
各行不同,故此 DFA 最小。