Um quebra-cabeça interessante veio até mim olhando os botões do elevador esta manhã.
Você deve gerar uma lista de todos os padrões de Braille que se encaixam em uma grade 2x3. Use um hash #
para indicar um solavanco e um hífen -
para indicar uma área plana.
Amostra de saída esperada:
#-
--
--
##
--
--
#-
#-
--
(and so on...)
Regras:
- Seu programa deve separar cada padrão por pelo menos um caractere ou linha.
- Os padrões podem ser gerados em qualquer ordem.
- Todos os padrões, independentemente do que o alfabeto Braille realmente usa, devem ser produzidos. O padrão completamente em branco é opcional.
- Somente padrões de bump exclusivos devem ser gerados. Os seguintes padrões são considerados equivalentes, pois os solavancos estão em um mesmo arranjo. Nesses casos, use o padrão mais próximo do canto superior esquerdo (ou seja, a primeira opção neste exemplo).
#- -# -- --
#- -# #- -#
-- -- #- -#
Pontos de bônus se você puder fazê-lo funcionar para qualquer grade de tamanho x por y . ( EDIT: dentro de limites razoáveis. Até 4x4 é suficiente para a prova de conceito.)
Lendo o artigo da wiki, parece que existem 45 padrões (incluindo o espaço em branco) que atendem às regras deste quebra-cabeça.
x
x,y
você gera os primeiros2^(xy)
números e filtra aqueles que mascaram para 0 contra2^x - 1
ou(2^(xy+1) - 1)/(2^y - 1)
.