Stamattina mi è venuto in mente un enigma interessante guardando i pulsanti dell'ascensore.
È necessario generare un elenco di tutti i modelli Braille che si adattano a una griglia 2x3. Usa un hash #
per indicare una protuberanza e un trattino -
per indicare un'area piatta.
Esempio di output previsto:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
Regole:
- Il programma deve separare ogni modello di almeno un carattere o una riga.
- I modelli possono essere generati in qualsiasi ordine.
- Tutti i modelli, indipendentemente da ciò che l'alfabeto Braille effettivamente utilizza, dovrebbero essere prodotti. Il modello completamente vuoto è facoltativo.
- Dovrebbero essere generati solo schemi di protuberanze unici. I seguenti schemi sono considerati equivalenti in quanto i dossi sono in una disposizione identica. In questi casi, utilizzare il modello più vicino all'angolo in alto a sinistra (ovvero la prima opzione in questo esempio.)
#- -# -- --
#- -# #- -#
-- -- #- -#
Punti bonus se puoi farlo funzionare per qualsiasi griglia di dimensioni x per y . ( EDIT: entro limiti ragionevoli. Fino a 4x4 è sufficiente per la prova del concetto.)
Leggendo l'articolo wiki, sembra che ci siano 45 modelli (incluso lo spazio vuoto) che soddisfano le regole di questo puzzle.
x
xy
si generano i primi2^(xy)
numeri e si filtrano quelli che si mascherano su 0 rispetto a2^x - 1
o(2^(xy+1) - 1)/(2^y - 1)
.