Уведомления

Группа в Telegram: @pythonsu

#1 Фев. 10, 2015 21:07:16

alekscooper
Зарегистрирован: 2015-01-25
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

Всем привет!

Задача: имеется целое число N>=0 и целые числа n1, n2,…, n1 - все больше нуля.

Нужно: найти все комбинации этих чисел так, что их сумма будет равна N.

Что хочу на форуме: тут вот какой вопрос возник. Я сейчас по большей части учу именно язык, синтаксис, всякие вещи, связанные со слайсингом строк, например, плюс ООП начинаю потихоньку. А это, как я понимаю, чисто алгоритмическая задача. Что это за тип алгоритма и где можно прочитать про алгоритмы, когда из одной группы числе надо нахимичить другую группу чисел или типа того? Решение писать не прошу - мне его самому найти хочется. Прошу помощи именно в задании направления поиска.

Спасибище!

Офлайн

#2 Фев. 10, 2015 21:30:00

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

не думаю что на такую задачу есть какие-то алгоритмы
вот как бы я сделал:
отсортировал бы список и рекурсивно перебирал все возможные комбинации по очереди с каждым числом, если сумма больше N, брал следуюющее число и так далее

я бы посоветовал что-то почитать по компьютерной логике, теории чисел и дискретной математики, а потом уже смотреть алгоритмы сортировки или что-то подобное



————————————————
-*- Simple is better than complex -*-

Офлайн

#3 Фев. 11, 2015 02:52:01

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

terabayt
найти все комбинации этих чисел так, что их сумма будет равна N
На питоне это делается в одну строку. :D

alekscooper
А это, как я понимаю, чисто алгоритмическая задача.
Это перестановки, а чтобы легче понимать перестановки, нужно пройти сортировки. Их, в принципе, для того и проходят в основном, чтобы мозги развить, так как пользоваться n^2-ыми не принято.



Отредактировано py.user.next (Фев. 11, 2015 02:53:39)

Офлайн

#4 Фев. 11, 2015 06:52:39

alekscooper
Зарегистрирован: 2015-01-25
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

py.user.next
Это перестановки, а чтобы легче понимать перестановки, нужно пройти сортировки. Их, в принципе, для того и проходят в основном, чтобы мозги развить, так как пользоваться n^2-ыми не принято.

Естественно, первое, что пришло в голову - O(n**2), то это, понятное дело, не айс. Понял, буду грызть сортировки

Офлайн

#5 Фев. 11, 2015 06:55:21

alekscooper
Зарегистрирован: 2015-01-25
Сообщения: 66
Репутация: +  1  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

py.user.next
Это перестановки
То есть, Вы бы посоветовали изучить алгоритмы сортировки, а потом комбинаторику?

Офлайн

#6 Фев. 11, 2015 07:32:26

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9890
Репутация: +  854  -
Профиль   Отправить e-mail  

Помогите определиться с типом алгоритма и направлением поиска инфы

От простого к сложному нужно изучать.

Вот пример:
1 3 2 5 4 6
Что проще сделать с числами: отсортировать и вывести, или получить все сочетания и вывести?



Офлайн

#7 Фев. 11, 2015 08:57:13

PanovSergey
От: Екатеринбург
Зарегистрирован: 2013-12-29
Сообщения: 269
Репутация: +  19  -
Профиль   Адрес электронной почты  

Помогите определиться с типом алгоритма и направлением поиска инфы

Вот боян конечно про сортировки зато очень даже наглядно

Отредактировано PanovSergey (Фев. 11, 2015 09:01:51)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version