一?求二進(jìn)制3的倍數(shù)的正則
二進(jìn)制3的倍數(shù)的自動(dòng)機(jī)表如下
其中Qi表示余3的結(jié)果,推出
A?= A0 + B1(1)
B = A1 + C0(2)
C = B0 + C1
利用R = Q+RP => R=QP*的公式可推出C = B01*陵珍,代入(2)式可得B=A1(01*0)*,再代入(1)式可得二進(jìn)制3的倍數(shù)的正則式 A = [0 | (01*0)*]*,簡單的測試了一下0,11,110,1001均成立,另外在別處臣抑疲看到用1((10*1)|(01*0))*10*作為二進(jìn)制3的倍數(shù)的正則式
二?求十進(jìn)制3的倍數(shù)的正則
十進(jìn)制3的倍數(shù)的自動(dòng)機(jī)表如下
推出
A = A[0369] | B[258] | C[147]
B = A[147] | B[0369] | C[258]
C = A[258] | B[147] | C[0369]
利用R = Q+RP => R=QP*的公式可推出
A = (B[258] | C[147])[0369]* (1)
B = (A[147] | C[258])[0369]* (2)
C = (A[258] | B[147])[0369]* (3)
然后分配率合并計(jì)算結(jié)果得十進(jìn)制3的倍數(shù)的正則式
A = (| B[258] | (A[258] | B[147])[0369]*[147])[0369]*
??= ??[0369]*
????| B[258][0369]*
????| A[258][0369]*[147][0369]*
????| B[147][0369]*[147][0369]*
??= ??[0369]*
????| A[147][0369]*([147][0369]*[258][0369]*)*[258][0369]*
????| A[258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[258][0369]*
????| A[258][0369]*[147][0369]*
????| A[147][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*
????| A[258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*
??= [0369]* (
??????????????????[147][0369]*([147][0369]*[258][0369]*)*[258][0369]*
????| [258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[258][0369]*
????| ????????????[147][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*
????| [258][0369]*[258][0369]*([147][0369]*[258][0369]*)*[147][0369]*[147][0369]*
????| [258][0369]*[147][0369]* )*
??= [0369]* (( [147][0369]*
??????| [258][0369]*[258][0369]*
??????) ([147][0369]*[258][0369]*)* (
????????[258][0369]*
??????| [147][0369]*[147][0369]*)
????| [258][0369]*[147][0369]* )*
十進(jìn)制部分參考自正則表達(dá)式如何匹配 3 的倍數(shù)? - Belleve的回答 - 知乎?