Здравствуйте!
Который день не могу родить решение переборной задачи.
Суть ее такова: есть числа от 1 до 5 (пока что), есть арифметические знаки — "+", "-", "*" и скобочки "(", ")".
Нужно сгенерировать всевозможные комбинации расстановки скобочек и знаков, т.е. к примеру (1 + (2 — (3 * (4 + 5)))) или (1+((2*3)-(4+5))) — да, вариантов здесь множество.
Для пяти цифр, например, это количество K = 14 всех бинарных деревьев разбора выражения умноженные на количество размещений с повторениями трех знаков по четырем местам (между 1 и 5 четыре арифм. операции). Итого, получаем 14*3^4 = 1134.
Прошу помощи в генерации всевозможных пар скобок, которые будут являться бинарными деревьями со арифметическими операциями в узлах и цифрами в листьях.
13.11.11 13:04: Перенесено из 'Этюды для программистов'