Qual é a fórmula para o número de strings sem repetições?


8

Eu quero contar o número de strings ssobre um alfabeto finito , que não contém repetições, e com isso quero dizer para qualquer substring deAts, 1<|t|<|s|, não há cópia separada de t no s. Por exemplo, deixeA={a,b}. Então é uma das seqüências de caracteres que quero contar, pois para a substring , não há cópias disjuntas. No entanto, contém essa repetição.aaa aaabab

Se alguém já descobriu uma fórmula útil, faça o link. Caso contrário, voltarei a este post em qualquer artigo que eu escrever, se eu usar a resposta de alguém.

Aqui está outro exemplo. Vamos tentar construir uma cadeia longa sobre , que não contém repetições:{a,b}

aaa (não pode ser a)
   aaab (a ou b)
     aaabbb (não pode ser b)
       aaabbba (não pode ser b ou a)
   aaaba (não pode ser a ou b)

Se construíssemos uma árvore, poderíamos contar o número de nós, mas quero uma fórmula.

Edit: Bem, não é tão assustador quanto eu pensava se convertermos isso em um problema de escolha de lixeira. Um conjunto de cadeias de comprimento k com pelo menos uma repetição é igual ao conjunto que é a união de todas as permutações do produto cartesiano: que é a repetição necessária. Não sei se isso é útil, mas parecia profissional :) De qualquer forma, deixe que sejam | A | escaninhos, escolha dois (mesmo que o mesmo) para repetir e escolhaA×A×⋯×A(k-4 times)×R×RRk−4 mais e multiplique (as 4 primeiras já estão escolhidas, vêem?). Agora só preciso encontrar essa fórmula a partir de matemática discreta.


1
por que não há cópia separada aaa? não ét=a uma substring válido de s=aa, isso é, s=tt? Você pode dar mais alguns exemplos para esclarecer o que deve e o que não deve ser contado?
— Ran G.

1
Aviso prévio 1<|t|requerimento. Deixe-me saber se / como posso escrever minha postagem com mais clareza.
— 111112 Dan Donnelly

sim, eu perdi esse requisito. Isso faz mais sentido agora.
— Ran G.

1
Não estou vendo como (com um alfabeto de duas letras, por exemplo) você pode construir uma sequência de comprimento (digamos) 10 sem repetições. isto é, o número desejado deve ser superior delimitada por uma função de k independente de n
— Suresh

2
Eu só posso dizer para o alfabeto de tamanho n corda mais longa possível sem repetições, é
2⋅(n2)+3⋅n
3⋅n é porque você pode ter cordas de comprimento 3 com os mesmos elementos e 2⋅(n2) é porque você apenas tem 2⋅(n2)combinações diferentes desses elementos e a adição de novas combinações causa repetição. (Eu considerei que você diz sobre repetições disjuntas).

Respostas:


1

Isso responde à pergunta após o número de palavras sem repetição por tamanho, implicando que a quantidade desejada existe.

Definição: Chamadaw∈Σ sem repetição, se e somente se não contiver um fatorxyx com x∈Σ≥2 e y∈Σ∗.

Reivindicação: Para um determinado alfabeto finitoΣ com |Σ|=k, não há palavras sem repetição com duração maior que 2k2+1.

Ideia de prova: Pelo princípio do buraco de pombo. Tome uma palavraw de comprimento 2k2+2 (ou uma palavra mais longa e considere seu prefixo desse tamanho), ou seja, w=a0a0′…ak2ak2′. Presumirwé livre de repetição; isso significa queaiai′≠ajaj′ para todos i≠j(caso contrário, tivemos uma repetição). Portanto, existemk2+1muitos pares de símbolos; isso contradiz|Σ2|=k2. assimw não é livre de repetição. ◻

Observe que esta é uma prova aproximada: fatores ai′ai+1 pode criar uma repetição ainda mais cedo.


Notação:

  • Σ≥k=⋃i=k∞Σi=Σ∗∖⋃i=0k−1Σi
  • "factor" = "subpalavra" = "substring"

Isso realmente não responde à pergunta. Você provou apenas um limite superior muito bruto e bastante óbvio, a pergunta pedia uma fórmula exata.
— Gilles 'SO- stop being evil'

@ Gilles: Eu interpretei mal a pergunta a princípio, mas pensei em deixar o que escrevi aqui para outras pessoas (por exemplo, Kaveh, que alegou que havia infinitas palavras assim).
— Raphael

Meu comentário é mais rígido do que sua resposta.
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.