Quando si dice che Codegolf avrà un torneo Rock-Paper-Scissors, si esamina l'argomento delle parole senza quadrati . Una parola fatta di lettere R
, P
, S
è quadrata gratuita se non contiene una sequenza che si ripete due volte. Vale a dire, la parola non può essere scritta come
a x x b
dove a
e b
sono parole di qualsiasi lunghezza ed x
è una parola di lunghezza almeno uno, tutti realizzati in lettere R
, P
, S
.
Compito
Scrivere un programma che genera i liberi quadrati parole delle lettere R
, P
, S
della lunghezza n
in cui il numero 1 <= n <= 10
è presa come input.
Esempio
Ad esempio, le parole senza quadrati della lunghezza 3 sono
RPR
, RSR
, RPS
, RSP
, SPS
, SRS
, SRP
, SPR
, PRP
, PSP
, PSR
,PRS
e quelli di lunghezza 4 sono
RPRS
, RPSR
, RPSP
, RSRP
, RSPR
, RSPS
, PRPS
, PRSR
, PRSP
, PSRP
, PSRS
, PSPR
, SRPR
, SRPS
, SRSP
, SPRP
, SPRS
,SPSR
e nota che per esempio SPSP
o PRPR
non sono quadrati liberi
Regole
- Questo è codegolf, il programma più corto vince, le scappatoie standard sono chiuse.
- È possibile stampare le parole o crearle in memoria.
- Il tuo programma può essere scritto come una funzione.
Riferimenti
Voce di Wikipedia su parole senza quadrati
Il numero di parole ternarie senza quadrato di una determinata lunghezza sono in https://oeis.org/A006156
n>3
sarebbe una buona idea, perché c'è stata una certa confusione su personaggi ripetuti rispetto a sequenze ripetute.