Diberi WxH
kotak, berapa banyak labirin yang mungkin ada?
Hal-hal yang Anda ketahui tentang labirin:
- Kotak persis
H
kotak tinggi danW
kotak lebar. - Ada tiga jenis kotak: Mulai, Selesai, dan Kosong. Labirin Anda harus berisi tepat 1 Mulai dan 1 Selesai, dan semua kotak yang tersisa kosong.
- Ada dinding yang mengelilingi seluruh labirin.
- Dinding dapat ada di tepi antara dua kotak, kecuali jika melanggar aturan di bawah ini:
- Harus ada jalur dari kotak Mulai ke kotak Selesai.
Oleh karena itu, diberikan dua angka, W
dan H
, Anda harus mengembalikan satu angka yang mewakili jumlah kemungkinan konfigurasi persegi / dinding. Anda dijamin akan melakukannyaW*H > 1
Misalnya, 2x2
labirin memiliki 100
konfigurasi yang mungkin sangat berbeda.
Ini adalah kode-golf sehingga jawaban terpendek menang!
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
sumber
sumber
Jawaban:
Python 2,
329310 byteIni adalah versi golf (dan jauh lebih tidak efisien) dari program yang saya gunakan saat membahas masalah dengan @Nathan. Saya dapat menyimpan beberapa byte dengan mengganti beberapa inden ruang dengan tab, tetapi saya akan menyimpannya untuk nanti.
Algoritma ini hanya menghasilkan setiap labirin, lalu mengisi banjir dari awal, melihat apakah kita melewati finish di beberapa titik atau tidak.
sumber