Біноміальний коефіцієнт

Матеріал з testwiki
Версія від 17:49, 2 січня 2025, створена imported>Олександр Тетеря (В розділі Алгоритми обчислень виправлено асимптотичну складність алгоритму обчислення біноміальних коефіцієнтів при фіксованому k, а саме часову складність O(k) виправлено на O(n))
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку
Біноміальні коефіцієнти розташовані у вигляді трикутника Паскаля.
Візуалізація біноміальних коефіцієнтів до 4 степеня
Візуалізація біноміальних коефіцієнтів до 4 степеня

Біноміальні коефіцієнти — коефіцієнти в розкладі  (1+x)n по степенях  x (так званий біном Ньютона):

(1+x)n=(n0)+(n1)x+(n2)x2++(nn)xn=k=0n(nk)xk.

Біноміальний коефіцієнт є узагальненням кількості невпорядкованих виборів Cnk, що визначена тільки для невід'ємних цілих чисел n, k, тобто  n+1 та  k+1. У явному вигляді для 0kn:

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

де n! та k! — факторіали чисел n і k.

Явні формули

Обчислюючи коефіцієнти в розкладі (1+x)n у степеневий ряд, можна отримати явні формули для біноміальних коефіцієнтів (nk).

Для всіх дійсних чисел n і цілих чисел k:

(nk)={n(n1)(n2)(nk+1)k!,k0,0,k<0,

де k! позначає факторіал числа k.

Для невід'ємних цілих n і k також справедливі формули:

(nk)={n!k!(nk)!,0kn,0,k>n.

Для цілих від'ємних показників коефіцієнти розкладу бінома (1+x)n рівні

(nk)={(1)k(n+k1)!k!(n1)!,k0,0,k<0.

Трикутник Паскаля

Шаблон:Докладніше Тотожність (nk)=(n1k1)+(n1k) дозволяє розташувати біноміальні коефіцієнти для невід'ємних n, k у вигляді трикутника Паскаля, в якому кожне число рівне сумі двох, що стоять на рядок вище:

n=0:1n=1:11n=2:121n=3:1331n=4:14641

Трикутна таблиця, запропонована Паскалем в «Трактаті про арифметичний трикутник» (1654), відрізняється від описаної тут поворотом на 45°. Таблиці для зображення біноміальних коефіцієнтів були відомі й раніше.

Властивості

Твірні функції

Для фіксованого значення n твірною функцією послідовності біноміальних коефіцієнтів (n0),(n1),(n2), … є

k=0(nk)xk=(1+x)n.

Для фіксованого значення k твірною функцією послідовності коефіцієнтів (0k),(1k),(2k), … є

n(nk)yn=yk(1y)k+1.

Двовимірною твірною функцією біноміальних коефіцієнтів (nk) для цілих n,k є

n,k(nk)xkyn=11yxy, або n=0k=0n(nk)xkyn=11yxy.

Подільність

Із теореми Люка випливає, що:

  • коефіцієнт (nk) непарний в двійкового запису числа k одиниці не стоять у тих розрядах, де в числі n стоять нулі;
  • коефіцієнт (nk) не кратний простому число p при записі числа k в системі числення з основою p, всі розряди не перевищують відповідних розрядів числа n;
  • у послідовності біноміальних коефіцієнтів (n0),(n1),,(nn):
    • всі числа не кратні заданому простому p число n можна подати у вигляді mpk1, де натуральне число m<p;
    • всі числа, крім першого й останнього, кратні даному простому p n=pk;
    • кількість непарних чисел дорівнює степеню двійки, показник якої дорівнює кількості одиниць у двійковому записі числа n;
    • парних і непарних чисел не може бути порівну;
    • кількість чисел, не кратних простому p, дорівнює (a1+1)**(am+1), де числа a1,,am — розряди p-кового запису числа n; а число m=logpn+1, де  — функція «підлоги» — це довжина даного запису.

Тотожності

  1. (nk)=(n1k1)+(n1k)
  2. (nk)=nnk(n1k)
  3. (n0)+(n1)++(nn)=2n
  4. (n0)+(n2)++(n2n/2)=2n1
  5. (n0)2+(n1)2++(nn)2=(2nn)
  6. k=0n(rm+k)(snk)=(r+sm+n) (згортка Вандермонда)

Біном Ньютона і наслідки

  • (n0)+(n1)++(nn)=2n, де n.
  • i+j=m(nj)(ni)(1)j={(nm/2),якщо m0(mod2),0,якщо m1(mod2).
  • j=kn(nj)(1)j=(1)k(n1k1).
  • (n0)(n1)++(1)n(nn)=0, де n.
  • Сильніша тотожність: (n0)+(n2)++(n2n/2)=2n1, де n.
  • k=aa(1)k(2ak+a)3=(3a)!(a!)3,

а в загальнішому вигляді

k=aa(1)k(a+ba+k)(b+cb+k)(c+ac+k)=(a+b+c)!a!b!c!.

Згортка Вандермонда і наслідки

Це тотожність виходить обчисленням коефіцієнта при xm+n у розкладі (1+x)r(1+x)s з урахуванням тотожності (1+x)r+s=(1+x)r(1+x)s. Сума береться за всіма цілими k, для яких (rm+k)(snk)0. Для довільних дійсних r, s число ненульових доданків у сумі буде скінченним.

  • (n0)(aa)(n1)(a+1a)++(1)n(nn)(a+na)=(1)n(an).
  • загальніша тотожність: i=0p(1)i(pi)m=1n(i+smsm)=0, якщо m=1nsm<p.
  • (n0)2+(n1)2++(nn)2=(2nn).

Інші тотожності

  • k=1n(1)k1k(nk)=k=1n1k=Hn — n- е гармонічне число.
  • Мультисекція ряду (1+x)n дає тотожність, що виражає суму біноміальних коефіцієнтів із довільним кроком s і зміщенням t (0t<s) у вигляді скінченної суми з s доданків:
(nt)+(nt+s)+(nt+2s)+=1sj=0s1(2cosπjs)ncosπ(n2t)js.
  • Виконуються рівності[1]:
(n3)=n(n1)(n2)2i=2n1(ni)(ni+1)==n(n1)(n2)i=2n1(ni)(2ni+1)==3(n3)2(n3);
(n4)=n(n1)(n2)(n3)2i=3n1(ni)(n(n1)i0=1i2i0)==n(n1)(n2)(n3)i=3n1(ni)(2n(n1)i0=1i2i0)==24(n4)23(n4);
(n5)=n(n1)(n2)(n3)(n4)2i=4n1(ni)(n(n1)(n2)i0=1i3i1=1i0i1)==n(n1)(n2)(n3)(n4)i=4n1(ni)(2n(n1)(n2)i0=1i3i1=1i0i1)==120(n5)119(n5).

Звідки випливає:

(n3)=i=2n1(ni)(2ni+1)2=i=2n1(ni)(2An1(i11))2;
(n4)=i=3n1(ni)(2n(n1)i0=1i2i0)23=i=3n1(ni)(2An2(i12))23;
(n5)=i=4n1(ni)(2n(n1)(n2)i0=1i3i1=1i0i1)119==i=4n1(ni)(2An3(i13))119;
(nk)=i=k1n1(ni)(2Ank2(i1k2))k!1,

де Ank — кількість розміщень із n по k.

Матричні співвідношення

Якщо взяти квадратну матрицю, відрахувавши N елементів по катетах трикутника Паскаля і повернувши матрицю на будь-який з чотирьох кутів, то детермінант цих чотирьох матриць дорівнює ±1 за будь-якого N, причому детермінант матриці з вершиною трикутника у верхньому лівому куті дорівнює 1.

У матриці [(i+ji)] числа на діагоналі i+j=const повторюють числа рядків трикутника Паскаля (i,j=0,1,). Її можна розкласти в добуток двох строго діагональних матриць: нижньотрикутної та одержуваної з неї транспонуванням. А саме:

[(i+ji)]=UUT,

де U=[(ij)]. Обернена матриця до U має вигляд:

U1=[(1)i+j(ij)].

Таким чином, матрицю, обернену до [(i+ji)], можна розкласти в добуток двох строго діагональних матриць: перша матриця — верхньотрикутна, а друга виходить з першої транспонуванням, що дозволяє дати явний вираз для обернених елементів:

[(i+ji)]m,n1=k=0p(1)m+n(km)(kn), де i, j, m, n = 0..p.

Елементи оберненої матриці змінюються за зміни її розміру і, на відміну від матриці [(i+ji)], недостатньо приписати новий рядок і стовпець. Стовпець j матриці [(i+ji)] є многочленом степеня j за аргументом i, отже, перші p стовпців утворюють повний базис у просторі векторів довжини p+1, чиї координати можна інтерполювати многочленом степеня рівного або меншого ніж p-1. Нижній рядок матриці [(i+ji)]m,n1 ортогональний до будь-якого такого вектора.

[(i+ji)]p,n1=k=0p(1)p+n(kp)(kn)=(1)p+n(pn)
n=0p(1)p+n(pn)Pa(n)=0 при a<p, де Pa(n) многочлен степеня a.

Якщо довільний вектор довжини p+1 можна інтерполювати многочленом степеня i<p, то скалярний добуток з рядками i+1,i+2,,p (нумерація з 0) матриці [(i+ji)]m,n1 дорівнює нулю. Використовуючи тотожність вище і рівність одиниці скалярного добутку нижнього рядка матриці [(i+ji)]m,n1 на останній стовпець матриці [(i+ji)], маємо:

n=0p(1)p+n(pn)np=p!.

Для показника, більшого від p, можна задати рекурентну формулу:

n=0p(1)p+n(pn)np+a=p!P2a(p)=fa(p),

де многочлен

P2a+2(p)=x=1pxP2a(x);a0;P0(p)=1.

Для доведення спершу доводиться тотожність:

fa(p+1)=x=0a(p+1)x+1fax(p).

Якщо потрібно знайти формулу не для всіх показників степеня, то

P2a(p)=p2a(p+aa)Qa1(p);a>0.

Старший коефіцієнт Qa1(p) дорівнює 1, щоб знайти інші коефіцієнти, знадобиться a1 значень:

Qa1(p)=p(p+1)Ta3(p) для a1(mod2);a3.

Цілозначні многочлени

Біноміальні коефіцієнти (x0)=1,(x1)=x,(x2)=x22x2, … є цілозначними многочленами від x, тобто, набувають цілих значень за цілих значень x, — це неважко зрозуміти, наприклад, за трикутником Паскаля. Більш того, вони утворюють базис цілозначних многочленів, у якому всі цілозначні многочлени виражаються як лінійні комбінації з цілими коефіцієнтами[2].

Разом з тим, стандартний базис 1,x,x2, … не дозволяє виразити всіх цілочисельних многочленів, якщо використовувати тільки цілі коефіцієнти, оскільки вже (x2)=x22x2 має дробові коефіцієнти при степенях x.

Цей результат узагальнюється на многочлени багатьох змінних. А саме, якщо многочлен R(x1,,xm) степеня k має дійсні коефіцієнти і набуває цілих значень за цілих значень змінних, то

R(x1,,xm)=P((x11),,(x1k),,(xm1),,(xmk)),

де P — многочлен із цілими коефіцієнтами.[3]

Асимптотика і оцінки

  1. (2nn)22nπn
  2. k=0m(nk)n(n/2m)22n3 при mn/2 (нерівність Чебишева)
  3. k=0m(nk)2nH(m/n) (ентропійна оцінка), де H(x)=xlog2x(1x)log2(1x) — ентропія.
  4. k=0n/2λ(nk)2ne2λ2/n (нерівність Чернова)

Алгоритми обчислення

  • Біноміальні коефіцієнти можуть бути обчислені за допомогою тотожності (nk)=(n1k)+(n1k1), якщо на кожному кроці зберігати значення (nk) для k=0,1,,n. Цей алгоритм особливо ефективний, якщо необхідно отримати всі значення (nk) при фіксованому n. Алгоритм потребує  O(n) пам'яті ( O(n2) для обчислення всієї таблиці) і  O(n2) часу.
  • Інший спосіб ґрунтується на тотожності (nk)=nnk(n1k). Він дозволяє обчислити значення (nk) при фіксованому k. Алгоритм потребує  O(1) пам'яті і  O(n) часу.

Узагальнення

Оскільки для  n+1: n!=Γ(n+1), то значення біноміального коефіцієнта можна визначити для усіх комплексних чисел  n та  k:

(nk)=Γ(n+1)Γ(k+1)Γ(nk+1)

Явні формули для обчислення біноміальних коефіцієнтів для цілих чисел  n та  k:

(nk)=n!k!(nk)! для 0kn;
(nk)=0 для  k<0 або 0n<k;
(nk)=(1)k(n+k1k) для n<0k.

Біноміальні коефіцієнти часто зустрічаються в комбінаторних задачах і теорії імовірностей.

Узагальненням біноміального коефіцієнта є мультиноміальний коефіцієнт.

Генерація на C++

#include <iostream>
#include <string>

using namespace std;

void C(int n, int m, int startAt = 1, string s = "") {
	for (int i = startAt; i <= n - m + 1; i++) {
		if (1 == m)
			cout << s + (char)(i+'0') << endl;
		else
			C(n, m - 1, i + 1, s + (char)(i+'0'));
	}	
}

int main() {
	C(7, 3);
	
	return 0;
}

Див. також

Примітки

Шаблон:Примітки

Джерела

Шаблон:Бібліоінформація Шаблон:ВП-портали