powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите с рекурсией
13 сообщений из 13, страница 1 из 1
помогите с рекурсией
    #36395445
Wiking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
помогите с рекурсией

имеется последовательность чисел и определенное число

нужно вывести на экран все под-последовательности, сумма которых равна этому числу

н.р

дано:
{2, 4, 6, 0} и нужная сумма 6

результат:

2,4

6

6,0

help
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395450
Mozok
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wiking,

тынц .
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395628
alex_k
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wiking,

а зачем здесь рекурсия?
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395646
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wikingпомогите с рекурсией

имеется последовательность чисел и определенное число
Уточняю. Последовательность ЦЕЛЫХ НЕОТРИЦАТЕЛЬНЫХ чисел.
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395698
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wiking,

Код: plaintext
1.
2.
3.
func []  0  res = [res]
func [] _ res = []
func (x:xs) n res = (func xs n res) ++ (func xs (n - x) (x:res))

результат:
Код: plaintext
1.
[[ 6 ], [ 0 ,  6 ], [ 4 ,  2 ], [ 0 ,  4 ,  2 ]]
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395699
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

интерфейс забыл

Код: plaintext
1.
2.
3.
4.
f xs n = func xs n []
    where func []  0  res = [res]
          func [] _ res = []
          func (x:xs) n res = (func xs n res) ++ (func xs (n - x) (x:res))
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395710
Фотография NextMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Wiking...
нужно вывести на экран все под-последовательности, сумма которых равна этому числу
...
Что есть "под-последовательность"?
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395713
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NextMan,

точно, плохо прочитал.
ща перепишу
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395745
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ZyK_BotaN,

Код: plaintext
1.
2.
3.
4.
5.
f xs n = filter (\x -> n == (sum x)) (subsets xs [] [])
    where subsets []  r1 r2 = r1 ++ r2
          subsets (s:ss) r1 r2 = subsets ss r1' r2'
              where r1' = r1 ++ r2
                    r2' = (map ((:) s) ([]:r2))
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395797
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
+ Нужно доказать что решение вообще существует.

Пример

Число 8 невозможно отобразить суммой элементов из вектора {15, 3, 2, 1}.
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395808
Фотография ZyK_BotaN
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,

решением будет пустой список
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36395946
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пускай автор скажет.
...
Рейтинг: 0 / 0
помогите с рекурсией
    #36396034
Wiking
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо.

Доказывать не нужно, пусть распечатает что есть, даже пустой список.


зачем рекурсия? - просто такое требование было


Спасибо за ответы
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / помогите с рекурсией
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]