正規表現は、2進数が3で割り切れるかどうかを判断します.

712 ワード

1列のSは次の式にマッチし、Sが3で割り切れるバイナリ数である場合にのみ、
^1((10*1)|(01*0))*10*$
手動で試してみてもいいです.ブラウザのコンソールに下記のコードを入力して、運転を再開します.
javascript:alert(/^1((10*1)|(01*0))*10*$/.test("1000000100"))
原理は簡単です.正規表現はまだできませんが、ここではそれに対応する有限状態の自動動機だけを説明します.
有限状態の自動動機と正規表現は互いに変換できる.
有限状態の自動動機を確立し、各状態をモード3の剰余として定義し、開始状態と終状態はすべて0であり、
 
 例を挙げます
S=11011に対して、初期は状態0で、Sは第1位1を取り、状態1になる.Sは第二位の1を取って、状態0になります.Sは第三位の0を取ります.まだ状態0です.Sは二人を取り残し、0は1になり、また0に戻る.最終的に0では、Sモード3の剰余は0であり、割り切れると説明しています.
 
 
参照リンク:
1. http://www.matrix67.com/blog/archives/1089
2. https://blog.csdn.net/happymff/article/details/72453290
転載先:https://www.cnblogs.com/lfri/p/11432176.html