Qual è una formula per il numero di stringhe senza ripetizioni?


8

Voglio contare il numero di stringhe su un alfabeto finito , che non contiene ripetizioni, e con ciò intendo per qualsiasi sottostringa di ,, non esiste una copia disgiunta di in . Per esempio, lascia . Quindi è una delle stringhe che voglio contare, poiché per la sottostringa non ci sono copie disgiunte. Tuttavia, contiene una tale ripetizione.sAts1<|t|<|s|tsA={a,b}aaa aaabab

Se qualcuno ha già trovato una formula utile, collega. Altrimenti, farò riferimento a questo post in qualsiasi articolo che scrivo, se uso la risposta di qualcuno.

Ecco un altro esempio. Proviamo a costruire una stringa lunga sopra , che non contiene ripetizioni:{a,b}

aaa (non può essere a)
   aaab (a o b)
     aaabbb (non può essere b)
       aaabbba (non può essere b o a)
   aaaba (non può essere a o b)

Se costruissimo un albero, potremmo contare il numero di nodi, ma voglio una formula.

Modifica: Beh, non è scoraggiante come pensavo all'inizio se lo convertiamo in un problema di scelta dei bin. Un insieme di stringhe di lunghezza k con almeno una ripetizione è uguale all'insieme che è l'unione di tutte le permutazioni del prodotto cartesiano: dove è la ripetizione richiesta. Non so se sia utile, ma sembrava pro :) Comunque, lascia che sia | A | bin, scegli due qualsiasi (anche se lo stesso) per essere la ripetizione, quindi scegli più e moltiplica (i primi 4 sono già scelti, vedi?). Ora ho solo bisogno di trovare quella formula dalla matematica discreta.A×A××A(k-4 times)×R×RRk4


1
perché non esiste una copia disgiunta in ? non è una sottostringa valida di , cioè ? Puoi dare un paio di esempi in più per chiarire cosa dovrebbe e non dovrebbe essere conteggiato? aaat=as=aas=tt
Ran G.,

1
AvvisoRequisiti. Fammi sapere se / come posso scrivere il mio post in modo più chiaro. 1<|t|
Dan Donnelly,

sì, ho perso questo requisito. Adesso ha più senso.
Ran G.,

1
Non vedo come (con un alfabeto di 2 lettere per esempio) puoi costruire una stringa di lunghezza (diciamo) 10 senza ripetizioni. cioè il numero desiderato deve essere limitato da una funzione di k indipendente da n
Suresh

2
Posso solo dire per l'alfabeto di dimensione stringa più lunga possibile senza ripetizioni, è è perché puoi avere stringhe di lunghezza con gli stessi elementi e è perché hai solo diverse combinazioni di questi elementi e l'aggiunta di nuove combinazioni causa la ripetizione. (Ho considerato che dici della ripetizione disgiunta). n
2(n2)+3n
3n32(n2)2(n2)

Risposte:


1

Questo risponde alla domanda dopo il numero di parole senza ripetizione per dimensione, il che implica che esiste anche la quantità desiderata.

Definizione: chiama ripetizioni se e solo se non contiene un fattore con e .wΣ xyxxΣ2yΣ

Reclamo: per un dato alfabeto finito con , non ci sono parole senza ripetizione di lunghezza maggiore di .Σ|Σ|=k2k2+1

Idea di prova: secondo il principio del buco del piccione. Prendi una parola di lunghezza (o una parola più lunga e considera il suo prefisso di questa lunghezza), cioè . Supponiamo che sia privo di ripetizioni; ciò significa che per tutti (altrimenti avremmo avuto una ripetizione). Pertanto, ci sono molte coppie di simboli; questo contraddice . Quindi non è privo di ripetizioni. w2k2+2w=a0a0ak2ak2waiaiajajijk2+1|Σ2|=k2w

Questa è una prova approssimativa: i fattori potrebbero creare una ripetizione ancora prima.aiai+1


Notazione:

  • Σk=i=kΣi=Σi=0k1Σi
  • "factor" = "subword" = "sottostringa"

Questo non risponde davvero alla domanda. Hai solo dimostrato un limite superiore molto grezzo e piuttosto ovvio, la domanda ha richiesto una formula esatta.
Gilles 'SO- smetti di essere malvagio' il

@Gilles: all'inizio ho letto male la domanda, ma ho pensato di poter lasciare ciò che ho scritto qui per gli altri (ad esempio Kaveh, che ha affermato che c'erano infinitamente molte parole del genere).
Raffaello

Il mio commento è più stretto della tua risposta.
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.