В математике комбинация — это выбор элементов из множества , имеющего различные элементы, так что порядок выбора не имеет значения (в отличие от перестановок ). Например, если даны три фрукта, скажем, яблоко, апельсин и груша, то из этого множества можно составить три комбинации из двух: яблоко и груша; яблоко и апельсин; или груша и апельсин. Более формально, k -комбинация множества S — это подмножество из k различных элементов S. Таким образом, две комбинации идентичны тогда и только тогда, когда каждая комбинация имеет одинаковые элементы. (Расположение элементов в каждом множестве не имеет значения.) Если множество имеет n элементов, то количество k -комбинаций, обозначаемое или , равно биномиальному коэффициенту
которую можно записать с использованием факториалов как всякий раз , когда , и которая равна нулю, когда . Эту формулу можно вывести из того факта, что каждая k -комбинация множества S из n членов имеет перестановки так или . [1] Множество всех k -комбинаций множества S часто обозначается как .
Комбинация — это комбинация из n вещей, взятых по k за раз без повторения . Для обозначения комбинаций, в которых допускается повторение, часто используются термины k -комбинация с повторением, k - мультимножество [ 2] или k -выбор [3] . [4] Если бы в приведенном выше примере можно было иметь два фрукта любого вида, то было бы еще 3 2-выбора: один с двумя яблоками, один с двумя апельсинами и один с двумя грушами.
Хотя набор из трех фруктов был достаточно мал, чтобы написать полный список комбинаций, это становится непрактичным по мере увеличения размера набора. Например, покерную руку можно описать как комбинацию из 5 карт ( k = 5) из колоды из 52 карт ( n = 52). Все 5 карт руки различны, и порядок карт в руке не имеет значения. Существует 2 598 960 таких комбинаций, и вероятность вытянуть любую руку наугад составляет 1 / 2 598 960.
Число k -комбинаций из заданного множества S из n элементов часто обозначается в текстах по элементарной комбинаторике как , или вариацией, такой как , , , или даже [5] (последняя форма является стандартной во французских, румынских, русских и китайских текстах). [6] [7] Это же число, однако, встречается во многих других математических контекстах, где оно обозначается как (часто читается как « n выбирает k »); в частности, оно встречается как коэффициент в биномиальной формуле , отсюда и его название биномиальный коэффициент. Можно определить для всех натуральных чисел k сразу с помощью соотношения
из чего ясно, что
и далее
для к > n .
Чтобы увидеть, что эти коэффициенты учитывают k -комбинаций из S , можно сначала рассмотреть набор из n различных переменных X s , помеченных элементами s из S , и разложить произведение по всем элементам S :
он имеет 2 n различных членов, соответствующих всем подмножествам S , каждое подмножество дает произведение соответствующих переменных X s . Теперь устанавливая все X s равными непомеченной переменной X , так что произведение становится (1 + X ) n , член для каждой k -комбинации из S становится X k , так что коэффициент этой степени в результате равен числу таких k -комбинаций.
Биномиальные коэффициенты можно вычислить явно различными способами. Чтобы получить их все для расширений до (1 + X ) n , можно использовать (в дополнение к уже приведенным основным случаям) рекурсивное соотношение
для 0 < k < n , что следует из (1 + X ) n = (1 + X ) n − 1 (1 + X ) ; это приводит к построению треугольника Паскаля .
Для определения индивидуального биномиального коэффициента практичнее использовать формулу
Числитель дает число k -перестановок n , т. е. последовательностей из k различных элементов S , тогда как знаменатель дает число таких k -перестановок, которые дают ту же k -комбинацию , когда порядок игнорируется.
Когда k превышает n /2, приведенная выше формула содержит множители, общие для числителя и знаменателя, и их сокращение дает соотношение
для 0 ≤ k ≤ n . Это выражает симметрию, которая очевидна из биномиальной формулы, и может быть также понята в терминах k -комбинаций, взяв дополнение такой комбинации, которое является ( n − k ) -комбинацией.
Наконец, есть формула, которая непосредственно демонстрирует эту симметрию и имеет то преимущество, что ее легко запомнить:
где n ! обозначает факториал n . Он получается из предыдущей формулы путем умножения знаменателя и числителя на ( n − k ) !, поэтому он, безусловно, вычислительно менее эффективен, чем та формула .
Последнюю формулу можно понять напрямую, рассмотрев n ! перестановок всех элементов S . Каждая такая перестановка дает k -комбинацию путем выбора ее первых k элементов. Существует много дублирующихся выборок: любая комбинированная перестановка первых k элементов между собой и конечных ( n − k ) элементов между собой дает одну и ту же комбинацию; это объясняет разделение в формуле.
Из приведенных выше формул следуют соотношения между соседними числами в треугольнике Паскаля по всем трем направлениям:
Вместе с основными случаями они позволяют последовательно вычислять соответственно все числа комбинаций из одного и того же множества (строки в треугольнике Паскаля), k -комбинаций множеств растущих размеров и комбинаций с дополнением фиксированного размера n − k .
В качестве конкретного примера можно вычислить количество возможных комбинаций из пяти карт из стандартной колоды из пятидесяти двух карт следующим образом: [8]
В качестве альтернативы можно использовать формулу в терминах факториалов и сократить множители в числителе против частей множителей в знаменателе, после чего потребуется только умножение оставшихся множителей:
Другое альтернативное вычисление, эквивалентное первому, основано на записи
что дает
При оценке в следующем порядке, 52 ÷ 1 × 51 ÷ 2 × 50 ÷ 3 × 49 ÷ 4 × 48 ÷ 5 , это можно вычислить, используя только целочисленную арифметику. Причина в том, что при каждом делении промежуточный результат, который получается, сам по себе является биномиальным коэффициентом, поэтому никаких остатков никогда не возникает.
Использование симметричной формулы в терминах факториалов без выполнения упрощений дает довольно обширный расчет:
Можно перечислить все k -комбинации заданного множества S из n элементов в некотором фиксированном порядке, что устанавливает биекцию из интервала целых чисел с набором этих k -комбинаций. Предполагая, что S само по себе упорядочено, например, S = { 1, 2, ..., n }, существуют две естественные возможности для упорядочения его k -комбинаций: сравнивая сначала их наименьшие элементы (как на иллюстрациях выше) или сравнивая сначала их наибольшие элементы. Последний вариант имеет то преимущество, что добавление нового наибольшего элемента к S не изменит начальную часть перечисления, а просто добавит новые k -комбинации большего множества после предыдущих. Повторяя этот процесс, перечисление можно расширять до бесконечности с помощью k -комбинаций все больших множеств. Если, кроме того, интервалы целых чисел начинаются с 0, то k -комбинация в заданном месте i в перечислении может быть легко вычислена из i , и полученная таким образом биекция известна как комбинаторная система счисления . Она также известна как «ранг»/«ранжирование» и «неранжирование» в вычислительной математике. [9] [10]
Существует много способов перечислить k- комбинации. Один из способов — отслеживать k -индексы выбранных элементов, начиная с {0 .. k −1} (начиная с нуля) или {1 .. k } (начиная с единицы) как первую разрешенную k -комбинацию. Затем многократно переходите к следующей разрешенной k -комбинации, увеличивая наименьший индексный номер, для которого это не создало бы два равных индексных номера, в то же время сбрасывая все меньшие индексные номера до их начальных значений.
K - комбинация с повторениями , или k - мультикомбинация , или мультиподмножество размера k из множества S размера n задается множеством из k не обязательно различных элементов S , где порядок не учитывается: две последовательности определяют одно и то же мультимножество, если одно может быть получено из другого путем перестановки членов. Другими словами, это выборка из k элементов из множества из n элементов, допускающая дубликаты (т. е. с заменой), но игнорирующая различные упорядочения (например, {2,1,2} = {1,2,2}). Свяжите индекс с каждым элементом S и думайте об элементах S как о типах объектов, тогда мы можем обозначить число элементов типа i в мультиподмножестве. Число мультиподмножеств размера k тогда равно числу неотрицательных целых (то есть допускающих нуль) решений диофантова уравнения : [11]
Если S имеет n элементов, то число таких k -мультиподмножеств обозначается как
обозначение, аналогичное биномиальному коэффициенту , который подсчитывает k -подмножества. Это выражение, n multichoose k , [12] также может быть дано в терминах биномиальных коэффициентов:
Эту связь можно легко доказать, используя представление, известное как звезды и полосы . [13]
Решение приведенного выше диофантова уравнения можно представить звездами , разделителем ( чертой ), затем еще звездами, еще одним разделителем и так далее. Общее количество звезд в этом представлении равно k , а количество черт равно n - 1 (так как для разделения на n частей требуется n-1 разделителей). Таким образом, строка из k + n - 1 (или n + k - 1) символов (звезд и черт) соответствует решению, если в строке есть k звезд. Любое решение можно представить, выбрав k из k + n − 1 позиций для размещения звезд и заполнив оставшиеся позиции чертами. Например, решение уравнения ( n = 4 и k = 10) можно представить следующим образом [14]
Число таких строк равно числу способов размещения 10 звезд в 13 позициях, что равно числу 10-мультиподмножеств множества из 4 элементов.
Как и в случае с биномиальными коэффициентами, между этими выражениями с множественным выбором существует несколько соотношений. Например, для ,
Эта идентичность следует из перестановки звезд и полос в представлении выше. [15]
Например, если в меню есть четыре вида пончиков ( n = 4) на выбор, и вы хотите три пончика ( k = 3), количество способов выбора пончиков с повторением можно рассчитать как
Этот результат можно проверить, перечислив все 3-мультиподмножества множества S = {1,2,3,4}. Это отображено в следующей таблице. [16] Во втором столбце перечислены пончики, которые вы фактически выбрали, в третьем столбце показаны неотрицательные целые решения уравнения , а в последнем столбце даны звездочки и полоски, представляющие решения. [17]
Число k -комбинаций для всех k — это число подмножеств множества из n элементов. Есть несколько способов увидеть, что это число равно 2 n . В терминах комбинаций, , что является суммой n -й строки (считая от 0) биномиальных коэффициентов в треугольнике Паскаля . Эти комбинации (подмножества) нумеруются цифрами 1 множества чисел с основанием 2, считая от 0 до 2 n − 1, где каждая позиция цифры — это элемент из множества n .
Учитывая 3 карты, пронумерованные от 1 до 3, существует 8 различных комбинаций ( подмножеств ), включая пустой набор :
Представим эти подмножества (в том же порядке) в виде чисел с основанием 2:
Существуют различные алгоритмы для выбора случайной комбинации из заданного набора или списка. Выборка отбраковки чрезвычайно медленная для больших размеров выборки. Один из способов эффективного выбора k -комбинации из популяции размера n — это итерация по каждому элементу популяции и на каждом шаге выборка этого элемента с динамически изменяющейся вероятностью (см. Выборка из резервуара ). Другой способ — выбрать случайное неотрицательное целое число, меньшее, и преобразовать его в комбинацию с помощью комбинаторной системы счисления .
Комбинацию также можно рассматривать как выбор двух наборов предметов: тех, которые попадают в выбранную корзину, и тех, которые попадают в невыбранную корзину. Это можно обобщить на любое количество корзин с ограничением, что каждый предмет должен попасть ровно в одну корзину. Количество способов разместить предметы в корзинах задается мультиномиальным коэффициентом
где n — количество предметов, m — количество ячеек, а — количество предметов, которые попадают в ячейку i .
Один из способов увидеть, почему это уравнение выполняется, — сначала пронумеровать объекты произвольно от 1 до n и поместить объекты с номерами в первую ячейку по порядку, объекты с номерами — во вторую ячейку по порядку и т. д. Существуют различные нумерации, но многие из них эквивалентны, поскольку важен только набор элементов в ячейке, а не их порядок в ней. Каждая комбинированная перестановка содержимого каждой ячейки создает эквивалентный способ размещения элементов в ячейках. В результате каждый класс эквивалентности состоит из различных нумераций, а число классов эквивалентности равно .
Биномиальный коэффициент — это особый случай, когда k элементов попадают в выбранную ячейку, а оставшиеся элементы попадают в невыбранную ячейку: