![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
||||
|
||||
![]() Помогите хотя бы понять логику.
есть числа: "1" в количестве n1 шт. "2" в количестве n2 шт. "5" в количестве n5 шт. "6" в количестве n6 шт. "10" в количестве n10 шт. "15" в количестве n15 шт. "20" в количестве n20 шт. количество может быть равным 0, могут быть и другие "числа". Как узнать какие числа и в каком количестве из данных нужно сложить что бы получить определённое число, например 33. Програмистами не рождаются, ими становятся! |
#2
|
||||
|
||||
![]() 32+1=33
31+2=33 … 1+32=33 — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
#3
|
||||
|
||||
![]() Не совсем.
33=10+10+5+5+2+1 Вот мне и надо что бы результатом выполнения было, что из заданных чисел нужно, 2 по 10, 2 по 5, 1 по 2, 1 по 1. (к примеру) Програмистами не рождаются, ими становятся! |
#4
|
||||
|
||||
![]() Как вариант. Ну или брутфорсить вычитанием.
jmp $ ; Happy End! The Cake Is A Lie. |
#5
|
||||
|
||||
![]() Цитата:
Я пол дня голову ломал, придумал алгоритм, вроде даже работает. Может статья поможет оптимизировать. Програмистами не рождаются, ими становятся! |
#6
|
||||
|
||||
![]() Код:
let solve s n m = (take n $ enumFrom 1) >>= \x -> (filter (\y -> ((length $ nub y) == x) && (sum y == s)) $ replicateM x m) Prelude Data.List Control.Monad> solve 33 5 [1,2,5,6,10,15,20] Результат: Код:
[[1,2,10,20],[1,2,20,10],[1,10,2,20],[1,10,20,2],[1,20,2,10],[1,20,10,2],[2,1,10,20],[2,1,20,10],[2,5,6,20],[2,5,20,6],[2,6,5,20],[2,6,10,15],[2,6,15,10],[2,6,20,5],[2,10,1,20],[2,10,6,15],[2,10,15,6],[2,10,20,1],[2,15,6,10],[2,15,10,6],[2,20,1,10],[2,20,5,6],[2,20,6,5],[2,20,10,1],[5,2,6,20],[5,2,2 0,6],[5,6,2,20],[5,6,20,2],[5,20,2,6],[5,20,6,2],[6,2,5,20],[6,2,10,15],[6,2,15,10],[6,2,20,5],[6,5,2,20],[6,5,20,2],[6,10,2,15],[6,10,15,2],[6,15,2,10],[6,15,10,2],[6,20,2,5],[6,20,5,2],[10,1,2,20],[10,1,20,2],[10,2,1,20],[10,2,6,15],[10,2,15,6],[10,2,20,1],[10,6,2,15],[10,6,15,2],[10,15,2,6],[10,1 5,6,2],[10,20,1,2],[10,20,2,1],[15,2,6,10],[15,2,10,6],[15,6,2,10],[15,6,10,2],[15,10,2,6],[15,10,6,2],[20,1,2,10],[20,1,10,2],[20,2,1,10],[20,2,5,6],[20,2,6,5],[20,2,10,1],[20,5,2,6],[20,5,6,2],[20,6,2,5],[20,6,5,2],[20,10,1,2],[20,10,2,1],[1,2,5,10,15],[1,2,5,15,10],[1,2,10,5,15],[1,2,10,15,5],[1, 2,15,5,10],[1,2,15,10,5],[1,5,2,10,15],[1,5,2,15,10],[1,5,10,2,15],[1,5,10,15,2],[1,5,15,2,10],[1,5,15,10,2],[1,10,2,5,15],[1,10,2,15,5],[1,10,5,2,15],[1,10,5,15,2],[1,10,15,2,5],[1,10,15,5,2],[1,15,2,5,10],[1,15,2,10,5],[1,15,5,2,10],[1,15,5,10,2],[1,15,10,2,5],[1,15,10,5,2],[2,1,5,10,15],[2,1,5,15 ,10],[2,1,10,5,15],[2,1,10,15,5],[2,1,15,5,10],[2,1,15,10,5],[2,5,1,10,15],[2,5,1,15,10],[2,5,10,1,15],[2,5,10,15,1],[2,5,15,1,10],[2,5,15,10,1],[2,10,1,5,15],[2,10,1,15,5],[2,10,5,1,15],[2,10,5,15,1],[2,10,15,1,5],[2,10,15,5,1],[2,15,1,5,10],[2,15,1,10,5],[2,15,5,1,10],[2,15,5,10,1],[2,15,10,1,5],[ 2,15,10,5,1],[5,1,2,10,15],[5,1,2,15,10],[5,1,10,2,15],[5,1,10,15,2],[5,1,15,2,10],[5,1,15,10,2],[5,2,1,10,15],[5,2,1,15,10],[5,2,10,1,15],[5,2,10,15,1],[5,2,15,1,10],[5,2,15,10,1],[5,10,1,2,15],[5,10,1,15,2],[5,10,2,1,15],[5,10,2,15,1],[5,10,15,1,2],[5,10,15,2,1],[5,15,1,2,10],[5,15,1,10,2],[5,15,2 ,1,10],[5,15,2,10,1],[5,15,10,1,2],[5,15,10,2,1],[10,1,2,5,15],[10,1,2,15,5],[10,1,5,2,15],[10,1,5,15,2],[10,1,15,2,5],[10,1,15,5,2],[10,2,1,5,15],[10,2,1,15,5],[10,2,5,1,15],[10,2,5,15,1],[10,2,15,1,5],[10,2,15,5,1],[10,5,1,2,15],[10,5,1,15,2],[10,5,2,1,15],[10,5,2,15,1],[10,5,15,1,2],[10,5,15,2,1] ,[10,15,1,2,5],[10,15,1,5,2],[10,15,2,1,5],[10,15,2,5,1],[10,15,5,1,2],[10,15,5,2,1],[15,1,2,5,10],[15,1,2,10,5],[15,1,5,2,10],[15,1,5,10,2],[15,1,10,2,5],[15,1,10,5,2],[15,2,1,5,10],[15,2,1,10,5],[15,2,5,1,10],[15,2,5,10,1],[15,2,10,1,5],[15,2,10,5,1],[15,5,1,2,10],[15,5,1,10,2],[15,5,2,1,10],[15,5 ,2,10,1],[15,5,10,1,2],[15,5,10,2,1],[15,10,1,2,5],[15,10,1,5,2],[15,10,2,1,5],[15,10,2,5,1],[15,10,5,1,2],[15,10,5,2,1]] — Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию Последний раз редактировалось M.A.D.M.A.N., 21.04.2015 в 08:39. |