Ich habe ein Hausaufgabenproblem, das mich verwirrt, weil die Mathematik über das hinausgeht, was ich getan habe, obwohl uns gesagt wurde, dass es unnötig sei, dies mathematisch zu lösen. Geben Sie einfach eine enge Obergrenze an und begründen Sie diese.
Sei Geben Sie eine asymptotische Obergrenze für als .
Bisher:
Die Mathematik, die mir eine genaue Grenze gibt, ist mir ein Rätsel. Offensichtlich ist eine Obergrenze, obwohl sie nicht besonders eng ist.
Irgendwelche Vorschläge, was ich versuchen sollte?
Antworten:
Ich bin mir also nicht ganz sicher, aber ich denke, Sie möchten die Anzahl der Zeichenfolgen der Größe (über dem Alphabet ) zählen, bei denen der Faktor / Teilstring nicht richtig angezeigt wird.{ a , b } a an {a,b} aa
In diesem Fall gibt es einige kombinatorische Ansätze, die Sie verfolgen können. Sowohl Yuval als auch ADG haben einfachere und intuitivere Argumente vorgebracht, daher empfehle ich auf jeden Fall, ihre Antworten zu überprüfen! Hier ist einer meiner Favoriten, es ist ein bisschen seltsam, aber es ist ein sehr allgemeiner (und irgendwie lustiger) Ansatz.
Beginnen wir mit einer einfacheren Sprache, der von Wörtern, die mit beginnen und enden (auch ohne Teilzeichenfolgen von ). Wir können eine zulässige Zeichenfolge (z. B. ) als eine Liste von Sequenzen von s betrachten, die durch singuläre s getrennt sind. Dies ergibt die Konstruktion: Wie zählen wir nun Sätze, die zu dieser Sprache gehören?a a b b b a b a b b b b b a w = ( b + a ) * b +b aa bbbababbbb b a
Stellen wir uns vor, wir erweitern diese Ausdrücke. Was bedeutet ? Nun, es ist einfach Nun, das macht sehr wenig Sinn, aber stellen wir uns vor, dass eine Variable über einem numerischen Feld ist. Insbesondere werden wir , und . Dies besagt dann, dass . Versuchen wir, die Motivation hinter dieser seltsamen Interpretation zu erkennen. Dies ist fast eine bijektive Transformation. Insbesondere möchten wir die Anzahl der einzelnen beibehaltene * = & egr; | e | e e | e e e | e e e e | ... e & egr; → 1 a | b → a + b a b c → a × b × c e * → 1 + e + e e + e e e + … e n × be∗
Wenn Sie zu Precalculus zurückkehren, erkennen Sie diese Reihe möglicherweise als . Ich weiß, dass es keinen Sinn macht, diesen regulären Ausdruck als numerisch bewertete Funktion umzuschreiben, sondern nur einen Moment mit mir zu verbringen.11−e
In ähnlicher Weise ist . Dies bedeutet, dass wir ine+=ee∗→e1−e w
Wir können dies wiederum vereinfachen bis
Dies sagt uns, dass die Sprache isomorph zur Sprache (deren direkte Übersetzung bereits ), ohne jemals auf eine Sprachtheorie zurückgreifen zu müssen Werkzeuge! Dies ist eine der Möglichkeiten, diese Reihen als geschlossene Funktionen zu behandeln: Wir können Vereinfachungen an ihnen vornehmen, die sonst kaum möglich sind, und sie so auf ein einfacheres Problem reduzieren.w b(b∣ab)∗ b1−b−ba
Wenn Sie sich jetzt noch an einen Ihrer Kalkülkurse erinnern, werden Sie sich daran erinnern, dass bestimmte Arten von Funktionen (die sich gut genug verhalten) diese als Taylor-Erweiterungen bekannten Reihenrepräsentationen zulassen. Keine Sorge, wir müssen uns nicht wirklich um diese lästigen Calc 1-Problemstellungen kümmern. Ich möchte nur darauf hinweisen, dass diese Funktionen als die Summe so dass die Anzahl der Wörter , die so , dass es genau Vorkommen von und Vorkommen von . Es ist uns jedoch nicht besonders wichtig, ob etwas ein oder ein
wobei die Anzahl der erfüllbaren Wörter der Länge .wk k
Jetzt müssen Sie nur noch finden . Der übliche kombinatorische Ansatz wäre hier, diese rationale Funktion in ihren Teilbruch zu zerlegen: Das heißt, wenn der Nenner , können wir umschreiben (Hier geht es um ein bisschen Algebra, Dies ist jedoch eine universelle Eigenschaft rationaler Funktionen (ein Polynom teilt ein anderes). Um dies zu lösen, können Sie Dies erzeugt die Bedingungen . Unabhängig davon, was und sind, erinnern Sie sich daranwk 1−z−z2=(z−ϕ)(z−ψ) z(z−ϕ)(z−ψ)=Az−ϕ+Bz−ψ
Angenommen, Sie haben , das die Anzahl der Zeichenfolgen der Größe , die mit beginnen und enden (und auch keine Teilzeichenfolgen enthalten). Wie können wir eine Zeichenfolge erstellen, die mit einem beginnen oder enden kann ? Nun, es ist einfach: Eine zulässige Zeichenfolge ist entweder in (beginnt und endet mit ) oder es ist (beginnt mit ) oder es ist (endet mit ) oder es ist (beginnt und endet mit ). Deshalb: Erinnere k k a a a W b a w a w eine einem a w eine einem f (wk k k aa a w b aw a wa a awa a
Jetzt müssen Sie diese Analyse wahrscheinlich nicht mehr durchführen, aber wenn Sie nur die Einsicht haben, dass diese Sequenz eine verschobene Fibonacci-Sequenz ist, sollten Sie sich ein Bild von anderen kombinatorischen Interpretationen machen, die Sie ausprobieren können.
quelle
Lee Gaos Antwort ist ausgezeichnet. Hier ist ein anderer Account. Betrachten Sie den folgenden Automaten:
Dies ist ein eindeutiger endlicher Automat (UFA) ohne Übergänge: eine NFA, bei der jedes Wort genau einen akzeptierenden Pfad hat. Die Anzahl der Wörter der Länge ist somit die Anzahl der Pfade der Länge vom Startzustand in einen akzeptierenden Zustand (da es keine Übergänge gibt).ϵ n n ϵ
Wir können die Anzahl der Pfade in einem Graphen mithilfe der linearen Algebra zählen. Sei die Übergangsmatrix des Automaten: ist die Anzahl der Pfeile von bis (jeder Pfeil ist einem einzelnen Symbol zugeordnet). Dann ist was genau die Anzahl der Pfade der Länge 2 von nach . In ähnlicher Weise ist die Anzahl der Pfade der Länge von bis . In unserem Fall wollen wir die Anzahl der Pfade der Länge ab zählenM M(qi,qj) qj qi
quelle
@ Lee Gao's ist zu komplex (ich habe noch nicht einmal das Ganze gelesen), hier ist ein vereinfachter Ansatz:
Sei f (n) alle gewünschten Strings, von denen a (n) Strings sind, die bei a enden, und b (n) Strings sind, die bei b enden.
Jetzt können wir für jede Zeichenfolge, die mit b endet, a direkt hinzufügen, um ba als Endung und eine gültige Zeichenfolge zu erhalten: Beachten Sie, dass wir a nicht bis zum Ende von Zeichenfolgen hinzufügen können, die ende an einem sonst haben wir aa am ende.
Wir können jedem String hinzufügen:
Nun in und Substitution in : Also ist b (n) fib (n) und da a ( n) ist b (n-1), daher ist a (n) fib (n-1). Jetzt ist f (n): Da fib (n) , ist f (n) , . (Nehmen Sie als Konstante und vernachlässigen Sie für großes , um eine Asymptote zu erhalten.)( 1 ) ( 2 ) b ( n ) = b ( n - 2 ) + b ( n - 1 ) f ( n ) = a ( n ) + bn↦n−1 (1) (2)
Anmerkung: fib (0) = 0, fib (1) = 1.
quelle