看板 Prob_Solve 關於我們 聯絡資訊
※ 引述《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