Уведомления

Группа в Telegram: @pythonsu

#1 Март 7, 2021 11:14:57

kek4ok
Зарегистрирован: 2021-03-07
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с решением задачи(массивы)

Написать функцию change(arr,n,q), которая получает список уникальных положительных целых чисел
и два дополнительных положительных целых числа и возвращает переставленный список.
Переставить arr надо так, чтобы сумма любых n последовательных значений не превышала q.

Пример:
change((3,5,7,1,6,8,2,4),3,13)) ==> (4,7,1,5,6,2,3,8) –> 4+7+1<=13, 7+1+5<=13, 1+5+6<=13, …

Не понимаю как это реализовать

Офлайн

#2 Март 7, 2021 20:21:07

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Помогите с решением задачи(массивы)

25$



Офлайн

#3 Март 7, 2021 22:33:45

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

Помогите с решением задачи(массивы)

kek4ok
Не понимаю как это реализовать
Возьми все перестановки входного массива и подбери из них первую подходящую под критерий.

  
>>> import itertools
>>> 
>>> list(itertools.permutations((1, 2, 3)))
[(1, 2, 3), (1, 3, 2), (2, 1, 3), (2, 3, 1), (3, 1, 2), (3, 2, 1)]
>>>



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version