Учитывая WxH
сетку, сколько возможных лабиринтов есть?
Что вы знаете о лабиринте:
- Сетка ровно
H
квадратная иW
квадратная. - Существует три типа квадратов: Start, Finish и Empty. Ваш лабиринт должен содержать ровно 1 начало и 1 конец, а все оставшиеся квадраты пусты.
- Есть стены, окружающие весь лабиринт.
- Стены могут существовать на границе между любыми двумя квадратами, если это не нарушает нижеследующее правило:
- Должен существовать путь от стартового квадрата до финишного квадрата.
Поэтому, учитывая два числа, W
и H
вы должны возвращать единственное число , представляющее собой количество возможных конфигураций площади / стена. Вам гарантировано, чтоW*H > 1
Например, 2x2
лабиринт имеет совершенно 100
разные возможные конфигурации.
Это код-гольф, поэтому выигрывает самый короткий ответ!
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
Натан Меррилл
источник
источник
Ответы:
Python 2,
329310 байтЭто версия программы для гольфа (и гораздо более неэффективная), которую я использовал при обсуждении проблемы с @Nathan. Я могу сохранить несколько байтов, заменив некоторые отступы пробелами, но я сохраню это позже.
Алгоритм просто генерирует каждый лабиринт, а затем заливает заливку с самого начала, проверяя, пройдем ли мы финиш в какой-то момент или нет.
источник