「7の倍数」を表す正規表現 #正規表現 - Qiita ↑この記事について、「2進数だったら現実的なサイズの正規表現で書けそう」と思ったので書いてみます おさらい: 7の倍数かを判定するオートマトン 7の倍数であるというのは、言い換えると 7で割ったときにあまりが0である ということです。これをもとに、ある数字を7で割ったときの余りを状態に持つオートマトンを考えます。このオートマトンは状態が0のときに受理状態になります(=7の倍数)。 このオートマトンの遷移には筆算の考え方が使えます。筆算ではまず一番上の桁をみて7で割り、そのあまりを10倍して次の桁での計算に利用していく、という流れです。それをもとにオートマトンを書いてみるとこんな感じになります。 12345 を 7で割ってみる オートマトンの状態に1 mod 7を格納 (状態: 1) 状態を10倍して、次の桁を足す (状態: 1*10