Me llegó un acertijo interesante mirando los botones del ascensor esta mañana.
Debe generar una lista de todos los patrones de Braille que se ajusten a una cuadrícula de 2x3. Use un hash #
para denotar una protuberancia y un guión -
para denotar un área plana.
Muestra de salida esperada:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
Reglas:
- Su programa debe separar cada patrón por al menos un carácter o línea.
- Los patrones pueden generarse en cualquier orden.
- Deben producirse todos los patrones, independientemente de lo que el alfabeto Braille realmente use. El patrón completamente en blanco es opcional.
- Solo se deben generar patrones de relieve únicos. Los siguientes patrones se consideran equitativos ya que las protuberancias están en una disposición idéntica. En estos casos, use el patrón más cercano a la esquina superior izquierda (es decir, la primera opción en este ejemplo).
#- -# -- --
#- -# #- -#
-- -- #- -#
Puntos de bonificación si puede hacer que funcione para cualquier cuadrícula de tamaño x por y . ( EDITAR: dentro de límites razonables. Hasta 4x4 es suficiente para probar el concepto).
Al leer el artículo wiki, parece que hay 45 patrones (incluido el espacio en blanco) que cumplen con las reglas de este rompecabezas.
x
xy
, genera los primeros2^(xy)
números y filtra los que se enmascaran a 0 contra2^x - 1
o(2^(xy+1) - 1)/(2^y - 1)
.