У меня есть список в python длины N, и я хочу выбрать из него пары пар элементов, где повторение элементов внутри пары недопустимо и где (x,y) == (y,x)
(без учета порядка). Есть N выбрать 2 пары, и K всегда значительно меньше N. Что такое хороший детерминированный способ (без выборки), чтобы выбрать самый «разнообразный» и представительный набор пар из списка, что означает: (1) набор пар, где представлено наибольшее количество элементов из списка (и нет какого-либо смещения для какого-либо конкретного элемента), (2) и где список пар не смещен в сторону начала или конца списка?Получение самого «разнообразного» набора пар из списка в Python?
пример:
l = [1,2,3,4,5]
есть 5 выбрать 2 = 10 возможных комбинаций. Если мы попросим 2 пары (K = 2), набор хороших пар будет [(1,2),(3,4)]
, потому что почти каждый элемент появляется в списке и у нас нет повторений любого элемента. A Плохой набор пар для K = 2 будет: [(1,2),(1,3)]
, поскольку он повторно использует 1 элемент и явно предвзято относится к началу списка. Если бы K было> 2, в этом случае нам нужно было бы повторять элементы, это неизбежно, но я хочу найти способ сделать это, что является репрезентативным/разнообразным списком wrt.
Я просто ищу эффективную и простую эвристику, не обязательно должен быть совершенным. есть идеи?
счастлив использовать numpy/scipy для этого.
5!/(2! (5 - 2)!) = 10 – user248237dfsf
@aaronman Нет, вы идете (n!)/(K! (N-k)!). На вопрос: подсчитайте, как часто каждый элемент появляется в списке, присваивайте вероятности по множественности для каждого числа. Исправьте порядок на множестве элементов (там нет дубликатов) и выберите из этих упорядоченных элементов списка в соответствии с их вероятностью. Настройте множественность после каждого выбора, промойте и повторите. Подобный вопрос [я когда-то был] (http://stackoverflow.com/questions/14915899/pick-random-element-from-set-with-non-uniform-distribution) может вам помочь. –
Или просто [google it] (https://www.google.com/search?q=5+choose+2). Если серьезно, то в чем причина детерминизма? Достаточно ли было бы перетасовки с известным семенем? –