Сочетания | Наука собственными силами
Свойства сочетаний
Числа Ckn обладают целым рядом замечательных свойств. Эти свойства можно доказать по-разному. Можно доказывать алгебраически – прямо воспользоваться формулой (8)
Но можно эти же свойства доказывать и чисто комбинаторными соображениями.
Свойствo 1
(9).
Алгебраическое доказательство:
В формулу для Ckn верхним индексом подставим (n-k). Получим
Однако намного изящнее комбинаторное доказательство:
Что значит «выбрать n-k предметов из n»? Это все равно что «указать k предметов, которые не будут выбраны». Т.е. выбрать n-k предметов из n можно столькими же способами, что и k предметов.
Этим свойством удобно пользоваться, когда верхний индекс ненамного меньше нижнего. Сравните, к примеру, два способа вычисления C57:
напрямую используя формулу (8):
или применяя формулу (9):
Не правда ли, второй проще?
Свойство 2
(10).
Алгебраическое доказательство:
Запишем правую часть, используя формулу (8) для числа сочетаний:
Приведем к общему знаменателю, равному n!∙(n-k)!:
Однако и здесь комбинаторное доказательство намного красивее:
Все сочетания из n по k (их количество равно Ckn ) можно разбить на два класса: содержащие элемент под номером n и не содержащие его.
Выбрать из n элементов k штук, включая n-й – это все равно, что из оставшихся n-1 элементов выбрать k-1. Это можно сделать Ck-1n-1 способами.
Если же n-й элемент в сочетание не входит, то все k элементов нужно выбирать из оставшихся n-1 элементов. Это можно сделать Ckn-1 способами.
Так как каждое сочетание из n по k входит или в один, или в другой класс, но не в оба сразу, можно применить правило суммы, и получить доказываемое равенство:
(10).
Свойство 3
(11).
Доказательство (комбинаторное):
В левой части равенства стоит количество всех сочетаний из n элементов (независимо от числа элементов в самих сочетаниях).
О каждом элементе мы можем принять решение: брать его в сочетание или не брать. Т.е. для каждого элемента есть два варианта решения: «да» и «нет». Будем для обозначения того или иного сочетания класть на каждый элемент монетку, причем «да» будем обозначать орлом, а «нет» – решкой. Таким образом, каждому сочетанию из n элементов будет соответствовать ряд из n монет. В разделе «Основные законы комбинаторики» мы доказали, что для n монет возможны 2n вариантов распределения орлов и решек. Поэтому количество всех сочетаний из n элементов равно 2n, что и требовалось доказать.
Перейти к следующей главе →
Страницы: 1 2 3
Число сочетаний (с из n по k) есть ли быстрый алгоритм? Python
Вопрос задан
Изменён 2 года 2 месяца назад
Просмотрен 24k раз
Число сочетаний можно найти используя рекурсию и, соответственно, рекуррентное соотношение. Код получается вот такой:
def C(n, k): if k == n or k == 0: return 1 if k != 1: return C(n-1, k) + C(n-1, k-1) else: return n print(C(int(input()), int(input())))
Но я знаю, что рекурсия штука не быстрая и не всегда надежная. Есть ли другие алгоритмы и на сколько они быстрые?
- python
- алгоритм
- производительность
Через факториал медленно и не эффективно.
В формуле n! / (k! (n - k)!)
, если сократить, то получится (n-k+1)(n-k+2)..n/k!
Получается такой код:
def С(n, k): if 0 <= k <= n: nn = 1 kk = 1 for t in xrange(1, min(k, n - k) + 1): nn *= n kk *= t n -= 1 return nn // kk else: return 0
Также можно посмотреть библиотеку itertools
:
combinations('ABCD', 2) # AB AC AD BC BD CD
используйте math.comb
import math n = int(input()) k = int(input()) print(math.comb(n, k))
Предлагаю использовать модуль itertools
, там сразу реализована нужная операция. Она составляет необходимые сочетания.
import itertools def C(n, k): return len(list(itertools.combinations(range(1, n), k)))
Хочу заметить, что сочетания она может составлять из чего угодно (т.е. передавать можно любой итерируемый контейнер).
4
Для ТС уже неактуально, наверное, но может кому пригодится.
Треугольник Паскаля (сочетания — это биномиальные коэффициенты).
Чтобы его «нарисовать», умножать вообще не нужно.
Быстрее уже никак.
7
Зарегистрируйтесь или войдите
Регистрация через Google
Регистрация через Facebook
Регистрация через почту
Отправить без регистрации
Почта
Необходима, но никому не показывается
Отправить без регистрации
Почта
Необходима, но никому не показывается
Нажимая на кнопку «Отправить ответ», вы соглашаетесь с нашими пользовательским соглашением, политикой конфиденциальности и политикой о куки
n Выберите формулу k – определение, применение и примеры
Формула известна как n Choose k , как следует из названия, она позволяет нам выбрать k элементов из n элементов .
k_n \mbox{ и } C_{n, k}\). Вычисление биномиальных коэффициентовБиномиальные коэффициенты могут быть вычислены несколькими способами, без расширения формулы:
Рекурсивная формула осе к } + {n-1 \выберите k-1}\)для всех целых чисел \(n, k\), таких что \(1 \leq k \leq n-1\).
Мультипликативная формула\({n \выберите k} = \frac{n(n-1)(n-2) … (n-(k + 1))}{k(k-1)( к-2)(к-3) … 1}\)
Формула факториала\({n \выберите k} = \frac{n!}{k!(n – k)!}\)
Приложения- Биномиальный коэффициент широко используется в комбинаторика .
- Он также находит применение в статистике , в частности, в концепции биномиального распределения .
- Он также используется в биномиальной теореме , в элементарной алгебре.
Вопрос 1. Найдите количество способов сформировать крикетную команду из 11 игроков из 20.
Раствор. Дано, n = 20, k = 11
Как известно,
\({n \выберите k} = \frac{n!}{k!(n – k)!}\)
⇒ \( {20 \выберите 11} = \frac{20!}{11!(20 – 11)!}\)
⇒ \({20 \выберите 11} = \frac{20*19*18*17*16* 15*14*13*12}{9*8*7*6*5*4*3*2*1}\)
⇒ \({20 \выберите 11} = 167960\)
Следовательно, 167960 способов выбрать 11 игроков из 20 игроков, чтобы сформировать крикетную команду.
Вопрос 2. Сколько существует способов вытянуть 5 карт из набора из 10 карт?
Раствор. Дано, n = 10, k = 5
Как известно,
\({n \выберите k} = \frac{n!}{k!(n – k)!}\)
⇒ \( {10 \выберите 5} = \frac{10!}{5!(10 – 5)!}\)
⇒ \({10 \выберите 5} = \frac{10*9*8*7*6} {5*4*3*2*1}\)
⇒ \({10 \выберите 5} = 252\)
Таким образом, существует 252 возможных способа выбрать 5 карт из 10.
Часто задаваемые вопросыКак рассчитать n выбрать k?
n выберите k, также известный как биномиальный коэффициент, который можно рассчитать по формуле
\({n \выбрать k} = \frac{n!}{k!(n – k)!}\)
n выбрать комбинацию k или перестановку?
Биномиальный коэффициент \({n \выбрать k}\) по существу подпадает под комбинацию. Формула вычисляет различные способы, которыми различные комбинации из k элементов могут быть выбраны из n элементов.
Другим обозначением для n select k является C(n, k) , где C по существу обозначает комбинации.
Чему равно n выбирает k?
Биномиальный коэффициент \({n \выбрать k}\) используется для нахождения количества способов, которыми можно выбрать k элементов из n элементов при условии, что n ≥ k ≥ 0.
Его можно вычислить по формуле \({n \выберите k} = \frac{n!}{k!(n – k)!}\)
n выбрать k калькулятор
Узнайте, сколькими способами можно выбрать k предметов из n предметов, установленных без повторения и порядка. Это число также называют комбинационным числом, или n выбирают k, или биномиальным коэффициентом, или просто комбинациями. См. также общий комбинаторный калькулятор.
Расчет:
Ck(n)=(kn)=k!(n−k)!n! n=10 k=4 C4(10)=(410)=4!(10 −4)!10!=4⋅3⋅2⋅110⋅9⋅8⋅7=210
Количество комбинаций: 210
Комбинации
Комбинация k-го класса из n элементов представляет собой неупорядоченную группу k-элементов, образованную из множества n элементов. Элементы не повторяются, и порядок элементов группы не имеет значения. В математике неупорядоченные группы называются множествами и подмножествами. Их количество является комбинационным числом и рассчитывается следующим образом:
Ck(n)=(kn)=k!(n−k)!n!
Типичный пример комбинаций: у нас 15 учеников, и мы должны выбрать троих. Сколько их будет?
Основы комбинаторики в текстовых задачах
- Расчет CN
Вычислить: (486 выбрать 159) — (486 выбрать 327) - Карты
Предположим, что три карты в шляпах. Один красный с обеих сторон, один из которых с обеих сторон черный, а третий с одной стороны красный, а второй черный. Наугад вытаскиваем шляпу на одной карточке и видим, что одна ее сторона красная. Какова вероятность того, что - Раздача 5016
У вас есть тест с восемью вопросами, где вы можете выбрать из 3-х ответов на каждый вопрос, и всегда один ответ правильный. Вероятность того, что мы ответим правильно на 5 или 6 вопросов при случайном заполнении (то есть мы все угадаем ответы), равна ……. Чт - Варианты
Найдите количество элементов, если количество вариантов четвертого класса без повторения в 42 раза превышает количество вариантов третьего класса без повторения. - Тройка 69274
Учитель хочет создать одну команду из трех человек из четырех девочек и четырех мальчиков, в которой будет одна девочка и два мальчика. Сколько различных вариантов есть для создания команды? - Вероятность 80560
У меня есть 3 источника, вероятность отказа которых равна 0,1. Вычислите вероятность того, что: а) ни у одного не будет неисправности б) у 1 будет поломка в) хотя бы у 1 будет неисправность г) у всех будет поломка - Футболки 73074
У Душана в шкафу 8 футболок и три пары шорт. Сколько способов он может одеться в школу? - Металлы
На чемпионате мира по хоккею сыграйте восемь команд и определите, сколькими способами они смогут выиграть золотые, серебряные и бронзовые медали. - Опции 3572
Бросаем три кости. Запишите все варианты застолья. - Сиропы
В магазине продаются три вида сиропов — яблочный, малиновый и апельсиновый. Сколькими способами можно купить четыре бутылки сиропа? - Пароль dalibor
Камила хочет изменить пароль daliborZ путем а) обмена двумя согласными между собой, б) замены одной малой гласной на такую же большую гласную в) внесения этих двух изменений.