Eu tenho um problema de lição de casa que está me deixando perplexo porque a matemática está além do que eu fiz, embora nos tenham dito que não era necessário resolver isso matematicamente. Basta fornecer um limite superior próximo e justificá-lo.
Deixei
Forneça um limite superior assintótico no Como .
Tão longe:
A matemática que me dará um limite exato está além de mim. Obviamente é um limite superior, embora não seja particularmente apertado.
Alguma sugestão sobre o que devo tentar?
Respostas:
Portanto, não tenho certeza absoluta, mas acho que você está pedindo para contar o número de cadeias de tamanhon (sobre o alfabeto {a,b} ) onde o fator / substring aa não parece certo?
Nesse caso, existem algumas abordagens combinatórias que você pode adotar. Tanto o Yuval quanto o ADG apresentaram argumentos mais simples e intuitivos, então eu definitivamente sugiro que verifique suas respostas! Aqui está um dos meus favoritos: é um pouco estranho, mas é uma abordagem muito geral (e meio divertida).
Vamos começar com um idioma mais simples, o das palavras que começa e termina comb (também sem substrings de aa ) Podemos olhar para uma string admissível (por exemplo,bbbababbbb ) como uma lista de sequências de b s separados por singular a s. Isso fornece a construção:
Vamos imaginar que estamos expandindo essas expressões. O quee∗ denotar? Bem, é simplesmente
Se você voltar ao pré-cálculo, poderá reconhecer esta série como11 - e . Sei que não faz sentido reescrever essa expressão regular como uma função com valor numérico, mas apenas ficar nua comigo por um momento.
Similarmente,e+= ee∗→e1 - e . O que significa que podemos traduzirW para dentro
Por sua vez, podemos simplificar isso até
Isso nos diz que o idiomaW é isomórfico para o idioma b ( b ∣ a b)∗ (cuja tradução direta já está b1 - b - b a ) sem precisar recorrer a ferramentas teóricas da linguagem! Esse é um dos poderes de tratar essas séries como funções de forma fechada: podemos realizar simplificações nelas que são quase impossíveis de executar de outra maneira, reduzindo-as a um problema mais simples.
Agora, se você ainda se lembra de algum curso de cálculo, se lembra de que certos tipos de funções (sendo suficientemente comportadas) admitem essas representações em série conhecidas como expansões de Taylor. Não se preocupe, não teremos que nos preocupar com esses conjuntos de problemas irritantes do Calc 1; Estou apenas apontando que essas funções podem ser representadas como a soma
Ondewk conta o número de palavras satisfatórias de comprimento k .
Agora, tudo o que resta a fazer é encontrarwk . The usual combinatorial approach here would be to decompose this rational function into its partial-fraction: that is, given the denominator 1−z−z2=(z−ϕ)(z−ψ) , we can rewrite z(z−ϕ)(z−ψ)=Az−ϕ+Bz−ψ (There's a bit of algebra involved here, but this is a universal property of rational (one polynomial dividing another) functions). To solve this, you can refactor
Now, suppose you havewk , which counts the number of strings of size k that starts and ends with k (and also contains no aa substrings), how can we build a string that can start or end with an a ? Well, it's simple: an admissible string is either in w (starts and ends with b ), or it is aw (starts with a ), or it is wa (ends with a ), or it is awa (starts and ends with a ). Therefore:
Now you probably don't have to do this analysis, but just by having the insight that this sequence is a shifted Fibonacci sequence ought to give you an idea of some other combinatorial interpretations that you can try.
fonte
Lee Gao's answer is excellent. Here is a different account. Consider the following automaton:
This is an unambiguous finite automaton (UFA) withoutϵ transitions: an NFA such that each word has exactly one accepting path. The number of words of length n is thus the number of paths of length n from the starting state to an accepting state (since there are no ϵ transitions).
We can count the number of paths in a graph using linear algebra. LetM be the transition matrix of the automaton: M(qi,qj) is the number of arrows from qj to qi (each arrow is associated with a single symbol). Then
fonte
@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:
Nown↦n−1 in (1) and substitue in (2) :
Note: fib(0)=0, fib(1)=1.
fonte