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 ae bsono 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, Sdella lunghezza nin 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 SPSPo PRPRnon 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>3sarebbe una buona idea, perché c'è stata una certa confusione su personaggi ripetuti rispetto a sequenze ripetute.