2012-02-07 5 views
3

これは一般的な論理質問であり、ほとんどの導入言語と機械コースに共通しています。しかし、私はインターネットとフォーラムでこれに関する助けを探しましたが、連続するセットに含まれる内容を詳しく説明するトピックは見つからないようです。ここで例の質問:(私はこのような多くのHWの問題を持って、私はどこから始めれば分からない)再帰を介してセットを生成する - 言語と文字列(CS /ロジック)

はLが終わっ{A、B}以下の再帰的定義 根拠によって生成された言語とします:λ ∈L 再帰的ステップ:w∈LならばawbbはLにある。 閉包:再帰的ステップの適用の有限数 によって設定された基底から得ることができる場合のみ、文字列w∈L。 パートa。セットL1を与える。 L2;および再帰的定義によって生成されたL3。 L0 =λ

アルファベットは{a、b}、Lo =空文字列、Lに文字列wが含まれている場合、awbbはLに入っています。次のカップルセット?

L1 = {λ、awbb}とし、L2 = {λ、awbb、aawbbwbb}と考える。

あなたがこれで提供できるお手伝いをいただければ幸いです。

+1

あなたが持っているものは、帰納的定義*と呼ばれることもあります。定義された集合は、この定義の最小の固定点である(または、「レイメーン用語」において、与えられた基準を満たす最小の集合)。後者は非常に重要であることに注意してください(あなたは「最終的に多くのアプリケーション」と言います)。そうでなければ、多くのセットが「定義」に準拠しています。 – Raphael

答えて

5

私は∈ L、そして∈ L awbb

手段ワット場合は、どのようなルール

を誤解していると思います。これはリテラル文字列 "awbb"がLであることを意味しません。代わりに、文字列w ∈ Lがある場合、その文字列wを文字列awbbに置き換えることができ、結果の文字列はLになります。例えば、ab ∈ Lの場合、aabbb ∈ Lも同様です。

これを使用して、L とL をもう一度試してみてください。私はあなたが最初のいくつかのセットを構築したら、すぐにパターンを見つけるだろうと思います。

希望すると便利です。

+0

あなたの迅速な対応に感謝します!あなたの例では、w = abの場合、L1 = {λ、aabbb}とL2 = {{λ、aabbb、aababbb}など、前の文字列の真ん中にabを入れます。一般に、L1 = {λ、awbb}、L2 = {λ、awwbb}などである。それともあなたの意見が完全に欠けていますか? – user1193839

+0

@ user1193839-あなたは私の意見を完全に欠いていると思います。 :-) wをプレースホルダーと考えてください。あなたがセットLに文字列を持っているなら、あなたはその文字列を取って、それが通常文字列にある場所に差し込むことができます。たとえば、ラムダがLに入っていることが分かっている場合は、ルールを1回適用した後にabbもLに入ります。なぜならawbbのwをλに置き換えるとabbを得るからです。 L2を構築したい場合は、awbbという文字列の中でwをabbに置き換えて、新しい文字列の結果を確認してください。 – templatetypedef

+0

オハイオ州。私は今これを持っていると思います。 L2 = a [w] bb→w = abbここで、wは以前の再帰的ステップから集められた値です。 L2は文字列aabbbbを生成し、L3はaaabbbbbを生成します。基本的には、前のステップの文字列をaとbbの間に挿入したままにしておきます。 – user1193839