Dada uma WxH
grade, quantos labirintos possíveis existem?
Coisas que você sabe sobre o labirinto:
- A grade é exatamente
H
quadrados altos eW
quadrados largos. - Existem três tipos de quadrados: Iniciar, Finalizar e Vazio. Seu labirinto deve conter exatamente 1 Start e 1 Finish, e todos os quadrados restantes estão vazios.
- Há paredes ao redor do labirinto inteiro.
- Podem existir paredes na borda entre dois quadrados, a menos que quebre a regra abaixo:
- Deve haver um caminho do quadrado Iniciar até o quadrado Concluir.
Portanto, com dois números W
e H
, você deve retornar um único número que representa o número possível de configurações de quadrado / parede. Você está garantido queW*H > 1
Por exemplo, o 2x2
labirinto tem 100
configurações possíveis exatamente diferentes.
Este é um código-golfe, então a resposta mais curta vence!
code-golf
maze
code-golf
string
whitespace
code-golf
arithmetic
code-golf
pyth
code-golf
game
code-golf
string
code-challenge
code-challenge
ascii-art
compression
king-of-the-hill
c
c++
java
code-challenge
math
optimization
code-challenge
math
code-golf
kolmogorov-complexity
code-golf
string
Nathan Merrill
fonte
fonte
Respostas:
Python 2,
329310 bytesEsta é a versão golfada (e muito mais ineficiente) do programa que eu estava usando enquanto discutia o problema com o @Nathan. Posso salvar alguns bytes substituindo alguns recuos de espaço por guias, mas guardarei isso para mais tarde.
O algoritmo é simplesmente gerar todos os labirintos e, em seguida, inundar o preenchimento desde o início, vendo se passamos o acabamento em algum momento ou não.
fonte