Python: как вычислять комбинации частей данного числа, предоставляя число, список лидеров, первого и последнего номераPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python: как вычислять комбинации частей данного числа, предоставляя число, список лидеров, первого и последнего номера

Сообщение Anonymous »

Я очень застрял в этом (вероятно, потому, что я новичок в компьютерном программировании).
У меня есть следующий код из вопроса: [https://stackoverflow.com/questions/376 ... 5_37617708]

Код: Выделить всё

def sum_to_n(n, size, limit=None):
"""Produce all lists of `size` positive integers in decreasing order
that add up to `n`."""
if size == 1:
yield [n]
return
if limit is None:
limit = n
start = (n + size - 1) // size
stop = min(limit, n - size + 1) + 1
for i in range(start, stop):
for tail in sum_to_n(n - i, size - 1, i):
yield [i] + tail

for partition in sum_to_n(8, 3):
print (partition)

[6, 1, 1]
[5, 2, 1]
[4, 3, 1]
[4, 2, 2]
[3, 3, 2]
Это очень полезно, но я пытаюсь изменить его, чтобы установить некоторые параметры. Предположим, я хочу иметь только те результаты, в которых первый номер списка равен 4, а последний номер списка — 1.
На данный момент я использую это решение:
def sum_to_n(n,first, last, size, limit=None):
if size == 1:
yield [n]
return
if limit is None:
limit = n
start = (n + size - 1) // size
stop = min(limit, n - size + 1) + 1
for i in range(start, stop):
if i 4:
break

[4,3,1]
< /code>
Но с большими целых числами программа выполняет много нежелательной работы. Возможные первые номера списка, а не только необходимый параметр «первый», и функция не работает без него. Запрашиваемые вычисления?

Подробнее здесь: https://stackoverflow.com/questions/389 ... ng-the-num
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»