Эффективно подсчитывать списки с определенными свойствамиPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Эффективно подсчитывать списки с определенными свойствами

Сообщение Anonymous »

Моя цель — подсчитать перестановки последовательности с определенными свойствами. Сначала я генерирую все перестановки, а затем проверяю, удовлетворяются ли свойства. Как я могу улучшить свой код, чтобы иметь возможность перечислять больше перестановок? Насколько большим может быть n? Я добрался до n=11. Могу ли я дойти до 15? до 20?
Следует ли мне рассмотреть возможность использования массивов numpy? Стоит ли мне подумать об использовании генератора? Должен ли я сохранять перестановки в базе данных?
Элементами списка являются целые числа, где список размера n хранит все целые числа от 1 до n.
Изменить: словарь заменен списком, как предложил @Jérôme Richard
from itertools import permutations

def is_valid(seq):
"""check that the sequence satisfies certain properties"""
n = len(seq)
l = [[abs(seq-seq[j]) for i in range(1, k) for j in range(0, k-1)] for k in range(2, n)]
for i in range(0, n-2):
if seq[i+2] not in l:
return False
return True

# enumerate perms
def enumerate_perms(n):
lst = list(range(1,n-1))
perms = [p for perm in permutations(lst) for p in [(n,*perm,n-1)] if is_valid(p)]
return perms

enumerate_perms(3)
# [(3, 1, 2)]

len(enumerate_perms(11))
# 598


Подробнее здесь: https://stackoverflow.com/questions/793 ... properties
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Эффективно подсчитывать списки с определенными свойствами
    Anonymous » » в форуме Python
    0 Ответы
    13 Просмотры
    Последнее сообщение Anonymous
  • Эффективно подсчитывать списки с определенными свойствами
    Anonymous » » в форуме Python
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Эффективно подсчитывать списки с определенными свойствами
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Эффективно подсчитывать списки с определенными свойствами
    Anonymous » » в форуме Python
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Эффективные списки с определенными свойствами
    Anonymous » » в форуме Python
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

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