これは数学的に解く必要はないと言われていましたが、数学は私がやったことを超えているので、私は困惑している宿題の問題を抱えています。ちょうど上限を提供し、それを正当化します。
してみましょう fの
漸近上限をます。
これまでのところ:
私に正確な限界を与える数学は私を超えています。明らかには上限ですが、特に厳密ではありません。
私が試すべきことについて何か提案はありますか?
これは数学的に解く必要はないと言われていましたが、数学は私がやったことを超えているので、私は困惑している宿題の問題を抱えています。ちょうど上限を提供し、それを正当化します。
してみましょう fの
漸近上限をます。
これまでのところ:
私に正確な限界を与える数学は私を超えています。明らかには上限ですが、特に厳密ではありません。
私が試すべきことについて何か提案はありますか?
回答:
だから私は完全にはわかりませんが、サイズの文字列の数を数えるように求めていると思います(アルファベットが、因数/部分文字列 a aが正しく表示されない })か?
この場合、いくつかの組み合わせのアプローチをとることができます。YuvalとADGはどちらもよりシンプルで直感的な議論を行っているため、回答を確認することをお勧めします。これは私のお気に入りの1つです。少し奇妙ですが、非常に一般的な(そして楽しい)アプローチです。
レッツは、その言葉のどちらで開始および終了、シンプルな言語で始まり(もの無いストリングとA)。私たちは、(例えば許容文字列を見ることができますB B B A B A B B B B)のシーケンスのリストとしてB単数で区切られたS 、A、S。これにより、次の構文が得られます 。w = (b + a )∗ b + では、この言語に属する文をどのように数えるのでしょうか。
これらの表現を拡張しているとしましょう。は何を示していますか?さて、それは単に e ∗ = ϵ ∣ e ∣ e e ∣ e e e ∣ e e e e ∣ …です。 さて、これはほとんど意味がありませんが、eがいくつかの数値フィールド上の変数であると想像してみましょう。特に、ϵ → 1、a ∣ b → a + b、およびa b c → a ×を扱います。
前計算に戻ると、このシリーズを1と認識している可能性があります。。この正規表現を数値関数として書き換えても意味がないことはわかっていますが、少しだけ触れておきます。
同様に、。これは、wを wに変換できることを意味します
次に、これをw (a 、b )= bに簡略化できます。
これは、言語が言語b (b ∣ a b )∗に同型であることを示しています(その直接翻訳はすでに)言語理論上のツールに頼る必要はありません!これは、これらのシリーズを閉じた形の関数として扱うことの力の1つです。他の方法では実行することがほぼ不可能であった簡略化を実行できるため、より単純な問題に削減できます。
ここで、微積分コースのいずれかをまだ思い出している場合は、特定のタイプの関数(十分に動作している)が、テイラー展開と呼ばれるこれらの級数表現を許可することを思い出します。心配しないでください。これらの厄介なCalc 1問題セットについて心配する必要はありません。これらの関数は合計 なるので、wijは、wが正確にi回出現するaとj回出現するbとなるようにwを満たす単語数を与えます。しかし、我々は、特に何かがあるかどうかを気にしないAまたはB。むしろ、文字列の合計文字数を気にするだけです。間の「盲目の目」オンにすると
ここで、は、長さkの充足可能な単語の数をカウントします。
あとは、を見つけるだけです。ここではいつものコンビナトリアルアプローチは、その部分-画分にこの有理関数を分解するために、次のようになります。つまり、分母与えられた1 - Z - Z 2 = (Z - φ )(Z - ψ )、我々は書き換えることができます(代数のビットがここに関与していないが、これは別の)機能を分割し、合理的(1多項式の普遍的な性質であります)。これを解決するには、Aをリファクタリングします 制約を生成A+B=1、Aψ+Bφ=0。AとBが何であるかに関係なく、
これでおそらくこの分析を行う必要はありませんが、このシーケンスがシフトしたフィボナッチシーケンスであるという洞察を得るだけで、他のいくつかの組み合わせの解釈を試すことができます。
イ・ガオの答えは素晴らしいです。これは別のアカウントです。次のオートマトンについて考えてみましょう。
@Lee Gao's is too complex (I haven't even read the whole thing), here is a simplistic approach:
Let f(n) be all desired strings out of which let a(n) be strings that end at a and b(n) be strings that end at b.
Now for every string that ends at b we can directly add a to get ba in ending and a valid string:
We can add b to any string:
Now in and substitue in :
Note: fib(0)=0, fib(1)=1.