※ 引述《MiiQ (指紋來了(按)》之銘言:
: (a)construct a finite-state machine M1 whose output tells the number
: of finite symbols, module 3,that have been applied
: (b)the input and output alphabets of M2 are {0,1}.
: construct a Finite-state machine M2 whose output sequence
: r(t)r(t-1)...r(1) is to be replica of the input sequence
: s(t)s(t-1)...s(1) delayed by two unit: r(t)=s(t-2) fot t>2
: we do not care r(1) and r(2) are.
: 題目搞不太懂
: 我第一題大致上是寫成
: ->(s0)------->(s1)--------(s2)------->(s3)
: t,1 t,2 t,0
: output 給 0 1 2 by mod 3
: 最後答案是給
: a,1 a,2
: ->(s0)-------->(s1)---->(s2)
: ^ |
: |---------------------/
: a,0
你不能只有一條直線 因為他沒有說長度3以下啊
所以有可能會輸入很長
你的答案就要0,1,2,0,1,2,...一直下去跑 所以需要一個cycle這樣
: 第二題我就真的沒有頭緒了
: 希望有高手可以指教一下 感恩
第二題就是要你做出一個可以delay 2個位元再輸出的
比如說你輸入110010101
那輸出就要是XX110010101
XX是don't care 他題目說的
提供你我想出來的FSM:
因為要delay 2個bit
所以要記下這兩個bit總共有的那四種可能情形 (00) (01) (10) (11)
這四種情形就是FSM中的四個狀態
然後因為他說前2bit輸出不在意 所以開始的位置隨便指到一個狀態就可以了 我設在(00)
就會有類似下圖:
()內的數字不用管他 那四個()都分別只是一個狀態而已
所以裡面的數字其實不用寫 只是我寫出來你比較好理解
()中前面那個數字代表下兩位才要輸出的,後面的數字代表下一位就要輸出
所以你每次輸入一個字 就等於要把它往前推一格 然後最前面的輸出這樣
0,0
___
\ / 0,1
start----->(00)<--------(01)
| ---->/ ^
| 0,0/ˊ / |
1,0| / / |0,1
| / /1,1 |
V /<----ˊ |
(10)-------->(11)
1,0 /_\
1,1
圖太難畫了...
不過我想你應該是能看懂我表達的@@
另外如果它題目有要求前兩個bit輸出要什麼 就把start指到那個狀態就可以
比如說要求前兩個要11 那就把start指到(11)那個狀態
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.112.85.110