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×RRk4 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)+3n
3n é 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=a0a0ak2ak2. Presumirwé livre de repetição; isso significa queaiaiajaj para todos ij(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 aiai+1 pode criar uma repetição ainda mais cedo.


Notação:

  • Σk=i=kΣi=Σi=0k1Σ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.