Калькулятор числа сочетаний

Калькулятор числа сочетаний

Добро пожаловать в Калькулятор числа сочетаний. Введите количество элементов (n) и количество выборов (k или r). Если допускаются повторения, отметьте соответствующую ячейку ниже. Затем нажмите кнопку «Вычислить».

Результат:
2026-04-02, автор:
Adam Narkiewicz

Адам имеет докторскую степень по экономике, отвечает за написание технических статей и курирует разработку онлайн-приложений. Вы можете найти его в:
https://narkiewicz.info/
https://www.linkedin.com/in/adamnarkiewicz/

Формула сочетаний

Сочетание — это выбор k элементов из группы n элементов. Его часто называют сочетанием из n элементов по k (не путать с размещениями из n элементов по k). В сочетаниях порядок выбранных элементов не имеет значения, а в перестановках, наоборот, имеет.

Сколько существует способов выбрать k элементов из большого множества n элементов? Символом для обозначения количества сочетаний из n по k без повторений (то есть, когда каждый выбранный элемент удаляется из множества, чтобы его нельзя было выбрать снова) является C(n,k). Во многих источниках также используются символы Cnk или (nk), причем последний вариант очень популярен. Таким образом, это можно записать как

C(n,k)=Cnk=(nk)=n!k!(nk)!,

где n! означает факториал числа n. При этом символом для обозначения сочетаний из n по k с повторениями (то есть, когда выбранные элементы возвращаются в множество и могут быть выбраны повторно) является Cnk, что иногда также обозначается как ((nk)):

E(n,k)=Cnk=((nk))=C(n+k1,k)=(n+k1)!k!(n1)!.

Сочетания и размещения без повторений связаны между собой формулой

Cnk=A(n,k)k!.

Число размещений делится на k!, чтобы учесть порядок элементов, который не имеет значения для сочетаний, но имеет значение для размещений. Если вас интересуют ситуации, в которых порядок выбранных элементов имеет значение, посетите наш Калькулятор числа размещений и перестановок.

Примеры сочетаний

Сколько рукопожатий может быть в группе из 100 человек?

Представьте, что вы только что пришли на вечеринку. Там 100 гостей (включая вас). Пытаясь поздороваться со всеми рукопожатием, вы задаетесь вопросом, сколько всего может быть рукопожатий, если все поздороваются друг с другом.

Всего на вечеринке n = 100 человек. Сколько различных пар людей можно сформировать в этой группе? Или, другими словами, сколько существует сочетаний из 100 по 2? Ответ:

C1002=(1002)=100!2!98!=100×992=4950.

В общей сложности будет 4950 рукопожатий. Обратите внимание, что мы используем сочетания без повторений, потому что человек не может пожать руку самому себе!

Сколько существует покерных комбинаций?

Рассмотрим игру без джокеров, то есть в нашей колоде всего 52 карты. Мы выбираем пять карт без повторений (поскольку мы не можем вытащить одну и ту же карту дважды). Порядок карт не имеет значения. Поэтому мы можем использовать сочетания из n по k без повторений, где k = 5 и n = 52:

(525)=2598960.

Следовательно, в покере существует 2 598 960 различных комбинаций. Зная это, мы можем рассчитать вероятность выпадения любой из ранжированных покерных комбинаций.

Шансы выпадения «каре»

Чтобы собрать четыре разномастных карты одного достоинства (каре), сначала нужно выбрать карты одного достоинства (13 вариантов), а затем — пятую карту (48 вариантов). Таким образом, существует (131)(481)=13×48=624 различных комбинаций каре. Следовательно, вероятность получить такую комбинацию случайно составляет 6242598960=141650,024%.

Шансы выпадения «фулл-хауса»

Рассчитать вероятность выпадения карт одного достоинства и двух — другого (фулл-хаус) сложнее. Сначала нам нужно выбрать достоинство пары (13 вариантов) и достоинство тройки (12 вариантов — оно не может совпадать с достоинством пары, поэтому один вариант исключается). Затем мы должны учесть различные сочетания мастей. Существует (42) сочетаний мастей для пары и (43) сочетаний мастей для тройки. Теперь мы умножаем эти числа, чтобы получить общее количество возможностей:

(131)(42)(121)(43)=13×6×12×4=3744.

Существует 3744 различных комбинаций фулл-хауса, поэтому вероятность получить его случайно составляет 37442598960=641650,144%. Это означает, что вероятность получить фулл-хаус в шесть раз выше, чем вероятность получить каре.

Шансы выпадения «флеша»

Флеш образуется, когда удается собрать пять карт одной масти. Сначала выбираем масть — четыре варианта. Затем выбираем пять из 13 карт этой масти: существует (135) способов сделать это. Итак, количество различных комбинаций флеш равно

(41)(135)=4×1287=5148.

Таким образом, вероятность получить флеш случайным образом составляет 51482598960=33166600,198%.

Важно! Эта формула также рассчитывает возможность выпадения «стрит-флеша» — особого вида флеша, в котором карты не только одной масти, но и идут по порядку. Поэтому, если вы хотите рассчитать вероятность выпадения «обычного» флеша, в котором карты идут не по порядку, вам нужно вычесть значение, полученное для стрит-флеш (см. ниже), из вероятности, рассчитанной выше.

Шансы выпадения «стрита»

В данном случае нас интересует набор из пяти карт, каждая из которых на один ранг выше предыдущей, независимо от масти. Чтобы определить количество таких комбинаций, сначала необходимо указать самую старшую карту. Самой старшей картой может быть туз, король, дама, валет, 10, 9, 8, 7, 6, 5 (туз также может выступать в качестве самой младшей карты в последовательности 5-4-3-2-туз), поэтому есть 10 вариантов ранга самой старшей карты. Как только мы выберем самую старшую карту, будут определены ранги всех остальных карт. Теперь нам нужно выбрать масти. Есть четыре возможные масти, и мы выбираем масть для каждой из пяти карт отдельно. Таким образом, мы используем размещения из 4 по 5 с повторениями, при этом формула будет 45. Следовательно, общее количество комбинаций стрит равно

(101)×45=10×1024=10240.

Вероятность случайно собрать стрит составляет 102402598960=12832487 0,394%.

Важно! Эта формула также рассчитывает вероятность выпадения «стрит-флеша» — особого вида стрита, в котором карты не только идут по порядку, но и имеют одну масть. Если вы хотите рассчитать вероятность получения «обычного» стрита, в котором карты имеют разные масти, вам нужно вычесть значение, полученное для стрит-флеш (см. ниже), из вероятности, рассчитанной выше.

Шансы выпадения «стрит-флеша»

Стрит-флеш — одна из самых сильных и редких покерных комбинаций. В этой комбинации карты идут по порядку, как в стрите, но при этом они одной масти, как в флеше. Чтобы рассчитать количество таких комбинаций, сначала нужно выбрать самую старшую карту. Как и в случае с обычной комбинацией стрит, это можно сделать 10 способами. Определив ранги карт, нам нужно выбрать масть, а для этого существует четыре способа. Окончательная формула выглядит так:

(101)(41)=10×4=40.

Таких комбинаций всего 40, поэтому вероятность получить стрит-флеш случайно составляет 402598960=1649740,00154%.

Важно! Эта формула также рассчитывает вероятность получения «флеш-рояля» (см. ниже). Если вы хотите рассчитать вероятность получения стрит-флеша, который не является комбинацией флеш-рояль, вам необходимо вычесть значение, полученное для флеш-рояль, из вероятности, рассчитанной выше.

Шансы выпадения «флеш-рояля»

Шансы собрать флеш-рояль еще ниже, чем шансы на стрит-флеш. Дело в том, что флеш-роял — это стрит-флеш с тузом в качестве самой старшей карты. Поэтому ранги карт в флеш-рояле всегда одинаковы: туз, король, дама, валет и 10. Меняться может только масть. Поскольку мастей всего четыре, существует всего четыре комбинации флеш-рояля. Вероятность собрать одну из них составляет 42598960=16497400,000154%. Это в 10 раз ниже, чем вероятность собрать стрит-флеш.

Шансы выпадения «тройки»

Чтобы получить три карты одного достоинства (тройку), сначала нужно выбрать ранг тройки. Сделать это можно 13 способами. Затем из оставшихся 12 рангов нужно выбрать ранги двух других карт. Необходимо убедиться, что у нас не получится пара (иначе получится фулл-хаус вместо тройки), поэтому мы используем сочетание из 12 по 2 без повторений: (122). Наконец, мы должны выбрать масти. Сначала мы выбираем масти тройки: (43). Затем мы выбираем масти двух оставшихся карт и поскольку они имеют разные ранги, мы используем размещения из 4 по 2 с повторениями, и получаем 42. Итого, формула выглядит следующим образом:

(131)(122)(43)42=13×66×4×16=54912.

Вероятность собрать тройку составляет 549122598960=884165 2,11%.

Шансы выпадения «двух пар»

Сколько существует различных способов собрать комбинацию две пары? Во-первых, необходимо выбрать ранги для пар: (132). Во-вторых, необходимо выбрать ранг пятой карты: (111). В-третьих, необходимо выбрать масти карт в каждой паре. В каждой паре карты должны быть разных мастей, поэтому есть (42) способа выбрать масти для пары с более низким рангом и (42) способа выбрать масти для пары с более высоким рангом. Наконец, мы должны выбрать масть для пятой карты. Это можно сделать четырьмя способами. Таким образом, умножив все эти факторы, мы получаем

(132)(111)(42)(42)(41)=78×11×6×6×4=123552.

Шансы собрать две пары составляют 1235522598960=1984165 4,75%.

Шансы выпадения «одной пары»

И, наконец, вероятность выпадения одной пары можно рассчитать следующим образом: 1) выбираем ранг пары: (131); 2) выбираем ранги остальных карт: (123); 3) выбираем масти карт в паре: (42); и 4) выбираем масти остальных трех карт: 43. Возможно, вы задаетесь вопросом, почему мы выбираем ранги трех разных карт с помощью сочетаний (то есть (123)), а их масти — с помощью размещений (то есть 43)? При выборе рангов следует использовать сочетания, поскольку порядок, в котором мы размещаем карты с этими рангами в нашей руке, не имеет значения — если мы изменим порядок карт в нашей комбинации, она останется той же. Однако это три карты разного ранга, поэтому у них есть свой естественный порядок — от самого высокого к самому низкому. Мы можем использовать этот естественный порядок для идентификации каждой карты при выборе их мастей. Сначала мы выбираем масть для карты с самым высоким рангом. Затем мы выбираем масть для карты со средним рангом. И, наконец, мы выбираем масть для карты с самым низким рангом. Каждый выбор имеет четыре варианта, что дает нам 4×4×4=43 возможности.

Следовательно, общее количество комбинаций одной пары равно

(131)(123)(42)43=13×220×6×64=1098240,

а вероятность собрать одну пару равна 10982402598960=352833 42,3%. Вы можете проверить этот результат экспериментально. Перетасуйте колоду и вытащите пять карт. Получилась ли у вас одна пара? Запишите ответ. Повторите этот процесс несколько раз — вам должна выпадать одна пара чуть менее чем в половине случаев.

Каковы шансы выиграть в лотерею?

В России популярна лотерея «Столото», в которой представлены различные типы игр, основанные на выборе случайных чисел из большего множества. Одна из них — «7 из 49». Правила игры предельно просты: участники выбирают 7 чисел из предложенного диапазона от 1 до 49 (без повторений). Получается, что количество всех возможных сочетаний составляет

(497)=85900584

Таким образом, существует 85 900 584 способов выбрать номера в лотерее «7 из 49». Проще говоря, чтобы гарантированно выиграть главный приз, нужно купить 85 900 584 билетов. Если вы купите только один билет, ваши шансы на выигрыш составят 1 к 85 900 584, что примерно равно 0,00000116%.

Сколько существует способов принести закуски на вечеринку?

Рассмотрим следующий пример: представьте, что вы собираетесь на вечеринку к своему другу. Вас попросили принести с собой закуски. Есть три вида закусок: чипсы, печенье и крекеры. Вы планируете купить пять упаковок. Сколько существует возможных комбинаций?

Во-первых, у нас есть три элемента на выбор, поэтому n = 3. Во-вторых, порядок, в котором мы их располагаем, не имеет значения. В-третьих, мы можем купить более одной упаковки каждого вида закусок. Поэтому мы должны применить сочетание из 3 по 5 с повторениями. Формула выглядит так:

C35=(3+515)=21.

Существует 21 способ выбрать закуски для вечеринки. Чтобы убедиться, что мы все правильно поняли, давайте перечислим все возможные сочетания (для удобства обозначим закуски буквами A, Б и В):

AAAAA
AAAAБ
AAAББ
AAБББ
AББББ
БББББ
ВAAAA
ВAAAБ
ВAAББ
ВAБББ
ВББББ
ВВAAA
ВВAAБ
ВВAББ
ВВБББ
ВВВAA
ВВВAБ
ВВВББ
ВВВВA
ВВВВБ
ВВВВВ

Объяснение формулы сочетаний

Сочетания из n по k без повторений

Формула сочетаний из n по k без повторений (которая иногда также называется формулой «n по k» или «n по r») — это

Cnk=n!k!(nk)!.

Чтобы проверить, насколько верна эта формула, рассмотрим процесс выбора k чисел из диапазона от 1 до n. Для начала расположим выбранные числа в последовательности длины k. Первое место в последовательности может занимать любое из чисел n. После удаления числа, занимающего первое место, для второго места в последовательности остается n − 1 вариантов. Это число также удаляется из множества, и для третьего места остается только числа n − 2. Продолжаем выбирать числа таким образом, пока не заполним всю последовательность длины k. Чтобы получить общее количество таких последовательностей (которое равно числу размещений из n по k без повторений), мы должны умножить количество вариантов, которые у нас есть на каждом этапе:

Ank=n×(n1)×(n2)××(nk+1)k множителей.

Однако это умножение является просто произведением наибольших k множителей факториала. Поэтому мы можем переписать это выражение как

Ank=n!(nk)!,

где факториал в знаменателе отменяет nk наименьших множителей в числителе, в результате чего то, что остается, соответствует предыдущей формуле.

Однако это еще не все, потому что до сих пор мы рассчитывали число размещений, а не сочетаний. В размещениях порядок элементов имеет значение. Мы учитывали порядок при построении последовательности — мы выбрали число для первой позиции, затем для второй, третьей и так далее. Теперь мы будем рассматривать все последовательности, состоящие из одних и тех же чисел, как одно сочетание. Итак, сколько различных последовательностей можно составить из k различных чисел? Ответ прост: k!. Размещений k! столько же, сколько и сочетаний. Чтобы получить количество сочетаний, нужно разделить количество размещений на k!:

Cnk=Ankk!=n!k!(nk)!.

Сочетания из n по k с повторениями

Как получить формулу сочетаний из n по k с повторениями? Каждый из n элементов может быть выбран от 0 до k раз, поэтому давайте представим n ящиков, пронумерованных от 1 до n. В каждом ящике находится до k мячиков, а общее количество мячиков во всех ящиках равно k. Ящики обозначают элементы, а мячики в данном ящике показывают, сколько раз мы выбираем элемент, обозначенный этим ящиком.

Как описать количество мячиков в каждом ящике с помощью последовательности чисел? Мы можем создать последовательность из n − 1 чисел, составленную следующим образом: i-ое число в этой последовательности показывает, сколько всего мячиков и ящиков от первого до i-го ящика. Например, первое число в этой последовательности равно единице плюс количество мячиков в первом ящике (оно может быть любым числом от 1 до k + 1). Второе число равно двум плюс количество мячиков в первых двух ящиках (это может быть любое число от 2 до k + 2, но оно должно быть больше первого числа). Третье число равно трем плюс количество мячиков в первых трех ящиках (любое число от 3 до k + 3, но больше второго числа). И так далее. Очевидно, что значение последнего числа в этой последовательности равно n − 1 плюс количество мячиков во всех ящиках, кроме последнего. Его значение может быть как n − 1 (если все мячики находятся в последнем ящике), так и n − 1 + k (если в последнем ящике нет мячиков).

Теперь давайте посмотрим на это с другой стороны. Мы имеем множество чисел от 1 до n − 1 + k. Из этого множества чисел мы выбираем без повторений n − 1 чисел. Мы располагаем их в порядке от наименьшего к наибольшему, и теперь знаем, сколько мячей помещается в каждый ящик. Каждый способ выбора n − 1 чисел из большего множества n − 1 + k чисел точно соответствует одному способу распределения k мячей между n ящиками. Но сколько существует способов выбрать n − 1 числа без повторений из множества n − 1 + k чисел? Ответ таков:

Cn+k1n1=(n+k1)!(n1)!k!.

Это уже почти та формула, которая нам нужна. Последний шаг — обратить внимание, что мы можем поменять порядок факториалов в знаменателе, то есть

Cn+k1n1=(n+k1)!(n1)!k!=(n+k1)!k!(n1)!=Cn+k1k,

и, наконец, мы получаем

Cnk=Cn+k1k=(n+k1)!k!(n1)!.

Треугольник Паскаля и биномиальные коэффициенты

Бином — это выражение, состоящее из двух слагаемых, например, x+y. Биномиальные коэффициенты — это числа, которые стоят рядом с x и y, когда мы возводим x+y в степень, которая является неотрицательным целым числом. Например, (x+y)0=1, (x+y)1=x+y, (x+y)2=x2+2xy+y2, (x+y)3=x3+3x2y+3xy2+y3 — в этих примерах биномиальные коэффициенты соответственно равны: 1, 1-1, 1-2-1 и 1-3-3-1. Получается, что биномиальные коэффициенты связаны с сочетаниями из n элементов по k: когда мы записываем (x+y)n, коэффициент, стоящий рядом с xkynk равен (nk). Например, в (x+y)3=x3+3x2y+3xy2+y3, коэффициент, стоящий рядом с x2y равен (32)=3. Эту зависимость можно выразить общей формулой

(x+y)n=k=0n(nk)xkynk.

Кроме того, биномиальные коэффициенты образуют интересный рисунок — их можно расположить в виде треугольника, известный как «треугольник Паскаля»:

n
01
111
2121
31331
414641
515101051
6

Любопытно, что в треугольнике Паскаля последующий ряд можно сформировать, сложив соседние элементы предыдущего ряда. Например, число 6 в ряду n = 4 получается из 3 + 3 в предыдущем ряду. Точно так же число 10 в ряду n = 5 получается из 4 + 6 в ряду выше. Это наблюдение можно обобщить уравнением

(nk)=(n1k1)+(n1k).

Биномиальные уравнения и тождества

Вот некоторые наиболее известные тождества, связанные с биномиальными коэффициентами:

1)
(nk)=(nnk)
2)
(nk)=nk(n1k1)
3)
(nk)=nnk(n1k)
4)
(nk)=nk+1k(nk1)
5)
(nk)=(n1k1)+(n1k)
6)
k=0n(nk)=2n
7)
k=0n(nk)2=(2nn)
8)
k=0n(nk)xk=(1+x)n
9)
k=0n(nk)xkynk=(x+y)n

Подсчет числа сочетаний из n по k в Python

Чтобы рассчитать число сочетаний из n по k без повторений на языке программирования Python, используйте функцию comb из модуля math:

from math import comb def nCk(n, k): return comb(n, k)

Для подсчета числа сочетаний из n по k с повторениями используйте формулу, связывающую сочетания с повторениями с сочетаниями без повторений:

from math import comb def nEk(n, k): return comb(n + k - 1, k)

Если вам нужно вывести все сочетания из n по k без повторений, воспользуйтесь специальной встроенной функцией:

from itertools, import combinations def list_combs(n, k): for c in combinations(range(1, n+1), k): print(c)

А чтобы вывести все сочетания из n по k с повторениями, используйте:

from itertools import combinations_with_replacement def list_combs_wr(n, k): for c in combinations_with_replacement(range(1, n+1), k): print(c)

Если вам нужно написать собственную функцию для подсчета числа сочетаний из n по k без повторений, вот пример:

from math import factorial def nCk(n, k): return int(factorial(n) / (factorial(k) * factorial(n-k)))

А для функции подсчета числа сочетаний из n по k с повторениями, можно использовать:

from math import factorial def nEk(n, k): return int(factorial(n + k - 1) / (factorial(k) * factorial(n-1)))

Как пользоваться Калькулятором числа сочетаний

Калькулятор числа сочетаний позволяет вычислить количество сочетаний из n по k как с повторениями, так и без повторений. Для выполнения вычисления введите количество элементов в поле, обозначенное буквой n. Затем введите количество выборов в поле, обозначенное буквой k или r. Если вас интересуют сочетания с повторениями, поставьте галочку в поле ниже. Нажмите кнопку «Вычислить», и ниже отобразятся результаты.

Калькулятор отлично подходит для вычислений с очень большими числами. Вычисление результата для таких исходных данных, как n = 1000000 и k = 1000, не вызовет никаких проблем. В случае больших чисел калькулятор показывает результат в двух формах. В первой строке отображается аппроксимация (приближенное значение) в экспоненциальной записи, а во второй — точное решение.

Заранее установленных ограничений нет, поэтому калькулятор попытается выполнить вычисления независимо от размера n и k. Однако будут ли вычисления успешно завершены, зависит от конфигурации вашей системы. Современные версии браузера Chrome на стационарных компьютерах могут легко вычислить результаты для таких исходных данных, как n = 8000000000 и k = 10000000 (сколько существует способов выбрать 10 000 000 человек, которые будут жить на гигантском космическом корабле после того, как астероид уничтожит Землю?). Однако при других конфигурациях системы, особенно на мобильных устройствах, вычисление таких больших чисел может вызвать затруднения.

Калькулятор обладает рядом других функций. Вы можете:

  1. Выбрать основание, в котором будут отображаться результаты. Для этого можно использовать любое натуральное число от 2 до 36. По умолчанию используется основание 10, то есть результаты отображаются в десятичной системе счисления. Если выбрать другое основание, оно будет использоваться только для отображения результатов. Ввод всегда считывается с использованием основания 10.
  2. Очистить поле с n и k, нажав кнопку «Очистить». Затем вы можете ввести желаемые значения заново.
  3. Скопировать результат в буфер обмена. Чтобы использовать эту функцию (и все последующие функции), нажмите соответствующую кнопку над полем «Результат».
  4. Скачать результат и сохранить его на своем устройстве в текстовом файле.
  5. Распечатать результат.
  6. Скопировать ссылку на результат в буфер обмена.
  7. Очистить результат.

Предоставление ссылки или внедрение этого контента

Вы можете использовать этот веб-сайт бесплатно, в том числе в коммерческих целях, при условии указания его в качестве источника. Если вы упоминаете его в научном тексте, вы можете использовать следующую ссылку:

Narkiewicz A., Калькулятор числа сочетаний, https://minesweeper.us/сапер/калькулятор-числа-сочетаний/, дата просмотра .

Чтобы сослаться на этот веб-сайт в Интернете, вы можете использовать его основной URL-адрес (https://minesweeper.us/сапер/калькулятор-числа-сочетаний/) или, если хотите сделать ссылку на конкретный результат, воспользуйтесь кнопкой «Скопировать ссылку в буфер обмена».

Вы также можете внедрить эту страницу на свой веб-сайт с помощью элемента iframe. Если вы хотите, чтобы на странице отображался только калькулятор, а все остальное содержимое (меню, статья и т. д.) было скрыто, используйте следующий URL-адрес в атрибуте src: https://minesweeper.us/сапер/калькулятор-числа-сочетаний/?iframe=1.

Пожалуйста, добавьте указание на эту страницу на своем веб-сайте, добавив гиперссылку. Вы можете сообщить нам о том, что разместили наше приложение на своем веб-сайте, отправив электронное письмо по адресу: contact@simiade.com. Это позволит нам уведомлять вас обо всех изменениях в нашем приложении, которые могут потребовать от администраторов веб-сайтов обновления способа его отображения на сайтах.

Ссылки

Charalambides, Charalambos A., Enumerative Combinatorics, CRC Press, 2002.

Контакты

Если у вас есть вопросы, комментарии или предложения, вы можете оставить их здесь:

Вы также можете связаться с нами по почте:

Simiade
Adam Narkiewicz
Plac Bankowy 2
00-095 Warszawa
Польша
+48 728235409
contact@simiade.com
https://simiade.com/ru/

Вы должны ввести неотрицательное целое число. Не используйте разделители — допускаются только цифры.

Основание должно быть целым числом от 2 до 36.

n не может быть меньше k.

Вычисление числа сочетаний из элементов из множества элементов. Пожалуйста, подождите…

(с повторениями)

Вывод результатов...

Произошла ошибка:

(основание )

n не может быть равен 0.

Калькулятор числа сочетаний | Большие числа |

C(,)

C(,)

В настоящее время повторения не разрешены

В настоящее время повторения разрешены

сочетания n=, k=

основание

с повторениями

Ваш отзыв отправлен. Спасибо!