Программач, я ведь знаю тут собрана самая мозговитая прослойка двача. Мне нужна помощь в решении следующего алгоритма.Задачка не из легких. Уже два дня потею, вот вот вроде выведу норм алгоритм,но нифига. Я уже и рекурсией, и мат. формулы искал. Ближе к делу. Необходимо подсчитать число разбиений (N) на слагаемые, для вводимого нами числа (Sum), при том, что у нас есть список доступных слагаемых (Arr).Пример: мы вводим число 7, и задаем слагаемые - [1,2,5]. Из этих условий следует, что Sum = 7; Arr = [1,2,5], а количество разбиений N нам нужно вычислить:1) {5,2};2) {5,1,1};3) {2,2,2,1};4) {2,2,1,1,1};5) {2,1,1,1,1,1};6) {1,1,1,1,1,1,1};В нашем случае N = 6;Важный момент - слагаемые могут повторяться, но их последовательность не важна, то есть разбиения типа {5,2} и {2,5} тождественны между собой и должны учитываться как одно решение Ребят, помогите плз. Упарывание всяких там формул Эйлера и т.д. не помогло в силу отсутствия решения для конкретно подобного случая
бампец
>>807619 (OP)лалка, смотри в сторону деревьев для постороения всех множеств. Потом сделаешь обход и отрежешь симметричные ветви. Потом РАСПЕЧАТАЕШЬ решение.
>>807630Просто найдется ли деревом вариант например такой вариант. Если делители 10,25,50, а чтсло = 50. То нисходящим деревом, мы проскочим комбинацию {10,10,10,10,10}. Так ведь?
>>807631Не пропустишь, если на каждом шаге построения ветви будешь создавать листы которые включают в себя все слагаемые, для которых общая сумма но корня будет меньше твоего ЧИСЛА. То есть построение типа (сокращенный вариант):10>25>10>тупик10>10>25>тупик10>10>10>10>10 (помечаем лист как УСПЕШНЫЙ, так как он соответствует ЙОБА-условию)
>>807631Если, не осилил таки, держи спойлер http://ideone.com/QNgNFQ
>>807619 (OP)Это же блять задача на размен сдачи. Такое на курсере в курсе по скале дают на первой же неделе. Через рекурсию решается элементарно.https://habrahabr.ru/post/109384/http://dxdy.ru/topic10235.html