Não é segredo que nerd que é nerd adora resolver problemas sem nenhuma utilidade aparente. Na maioria dos casos, quanto mais inútil e desligado de qualquer compromisso, mais tentador é o problema. Como dizia Carl Sagan, nem que se pagassem todo o dinheiro do mundo conseguiriam que Maxwell desenvolvesse suas equações em pesquisa controlada.

De fato, todo o processo de resolução de problemas, desde a formulação, passando pela modelagem e desenvolvimento do método, até finalmente obter os resultados e encontrar conclusões a respeito deles. Daí um dia eu me vi formulando um problema tão incrivelmente banal que provavelmente seria infinitamente fascinante de resolver: o Problema dos Dominós!

... hein?

O problema é o seguinte: você tem um conjunto de dominós com até n pontos(e.g., um jogo de dominó convencional é um 6-dominó). O problema consiste simplesmente de duas perguntas:

  1. É possível enfileirar todas as peças de uma vez só, segundo as regra do jogo, i.e., uma peça com uma extremidade X se conecta com outra que tenha uma extremidade igual livre?
  2. Se sim, de qual forma, i.e., enfileirando-as em que ordem?

Simples assim. A utilidade disso? Não sei. Só sei que resolvi resolver essa coisa.

E...?

E fiz um programa bem simples em Python. Escolhi Python porque pra mexer com vetores, tuplas e etcéteras, ou Python ou PHP, e Pyhton estava mais à mão. Pois bem, fiz o programa, com um argumento(qual o "n" do conjunto) e mandei ele rodar. Os resultados foram interessantes...

Obviamente, para 1-dominós e 2-dominós o resultado era óbvio, logo só serviram para provar que o programa estava certo, e também que eu cometi um erro na especificação do problema. Não deveria ser "de qual forma", mas "de quais formas". O problema para 3-dominós, por exemplo, tem 12 soluções, que são 6 se você descontar as reversões. Mas a parte mais interessante vem agora...

Não provei formalmente ainda, mas achar uma primeira solução é trivial para o programa. Não leva 1 segundo e ele já imprime umas dezenas delas, quando há. Daí deu pra perceber um padrão interessante: existe solução para o "Problema dos Dominós" com N igual a 1, 2, 3, 5, 7, 9, 11, 13... Mas não existe para N igual a 4, 6, 8, 10, 12, 14... Ou seja: para conjuntos pares, exceto 2(que tem solução imensamente trivial) não existe uma solução sequer. Juro, rodei com N=4 e o programa não deu resposta. Para n=6, o "problema clássico", ele rodou por quase meia hora sem resposta, mais que suficiente...

Então...

Então não sei. Deve existir alguma aplicação prática pra isso, mas no momento eu não faço idéia. Por ora é apenas mais uma curiosidade desenvolvida por conta própria por um jovem nerd.

E, essas férias, vou ver se consigo fazer a versão "Cíclica" do problema. Se der alguma coisa interessante, eu aviso. ;)