Имя: Пароль:
IT
 
Парные скобки
0 Asmody
 
31.08.15
12:09
Мне задачка показалась интересной, решил перепостить сюда:
источник

В семействе Lisp-языков основной "синтаксис" языка состоит из комбинаций парных скобок ( ). При этом должен соблюдаться баланс — каждая открытая скобка должна иметь соответствующую закрытую, причем пары скобок не должны пересекаться. Нетрудно посчитать, что из двух пар скобок возможны только два корректных варианта "()()" и "(())".

Задача состоит в том, чтобы сгенерировать все возможные последовательности длины 2n, где n — количество пар скобок.
1 Asmody
 
31.08.15
12:15
расшифрую приемные тесты:
через #{} в clojure задается Set, т.е. неупорядоченная коллекция неповторяющихся элементов.

1) проверяет результаты для n=0, 1, 2
2) результат для n=3
3) количество вариантов при n=10 должно быть 16796
4) если из всех вариантов при n=9 отобрать содержащие подстроку "(()()()())", отсортировать по возрастанию и взять 6й элемент, то должно получиться "(((()()()())(())))"
5) если отсортировать по возрастанию все результаты для n=12, то 5000й элемент равен "(((((()()()()()))))(()))"
2 Ненавижу 1С
 
гуру
31.08.15
12:21
3 Лодырь
 
31.08.15
12:22
(2) Злодей.
4 Asmody
 
31.08.15
12:36
(2) Там алгоритма генерации нет
5 Лодырь
 
31.08.15
12:40
6 Гёдза
 
31.08.15
12:40
http://neerc.ifmo.ru/wiki/index.php?title=Правильные_скобочные_последовательности
7 Лодырь
 
31.08.15
12:42
после того как найдено общепринятое имя задачи - чаще всего поиск решения превращается в изобретение велосипеда (