作者march20 ()
看板Prob_Solve
標題Re: [問題] 從二進位判斷數字是否被5整除
時間Sat Oct 4 18:02:08 2008
※ 引述《neverfly (neverfly)》之銘言:
: 我想要建一個automata,可以輸入二進位的值,
: 如果該值能被5整除就接受。
: 但是我想了很久,實在想不出來二進位下,能被5整除的數有什麼特性。
: 列了前幾個出來
: 101 1010 1111 10100 11001 11110 100011 101000
: 101101 110010 110111 111100 1000001 1000110 1001011 1010000
: 1010101 1011010 1011111 1100100 ……
: 只發現了有每八個,末三碼會重覆這個特性,
: 不過似乎還是不能直接檢查出來一串二進位的值是否被5整除。
: 請問有人能解決這個問題嗎?
一個 5-state finite automaton 應該可以解決:
States : {s_i | 0 <= i < 5}: 目前輸入 mod 5 餘數為 i
Alphabet : {0, 1}
Start State : s_0
Accept States: {s_0 }
transition function :
| 0 | 1
---+---+----
s_0|s_0|s_1
s_1|s_2|s_3
s_2|s_4|s_0
s_3|s_1|s_2
s_4|s_3|s_4
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 71.136.255.51
※ 編輯: march20 來自: 71.136.255.51 (10/04 18:10)
→ march20:嗯, 如果 digits 是從右到左輸入會麻煩得多 @@ 10/04 18:13
推 yauhh:原來是這樣的處理法 10/04 20:20
→ neverfly:搞懂了,非常感謝你的說明 10/06 14:48