language を表す正規表現を見つける必要があります{w in {a,b,c}* | neither bc nor cb is part of w}
。
私は次のように考えました: bc も cb も正規表現の一部ではないため、b のシーケンスの後に c のシーケンスが続く場合、またはその逆の場合は、c のシーケンスの前に少なくとも 1 つの「a」が必要です。これが私が次の解決策を思いついた方法です:
(a+b)* | (a+c)* | (a+b)*a(a+c)* | ((a+b)*a(a+c)*a)* | (a+c)*a(a+b)* | ((a+c)*a(a+b)*a)*
私の解決策の正しさについて確信が持てないので、ここでそれが機能するかどうかを尋ねることを考えました。これとは別に、対応する正規表現を見つける数学的な方法はありますか? 私の解決策は直感だけに基づいているからです。
前もって感謝します。