nchoosek

Биномиальный коэффициент

Синтаксис

b = nchoosek(n,k)
C = nchoosek(v,k)

Описание

пример

b = nchoosek(n,k) возвращает биномиальный коэффициент n и k, заданного как n!/(k!(n - k)!). Это - количество комбинаций элементов n взятый k за один раз.

пример

C = nchoosek(v,k) возвращает матрицу, содержащую все возможные комбинации элементов векторного v взятый k за один раз. Матричный C имеет столбцы k и строки n!/(k!(n - k)!), где n является length(v). В этом синтаксисе k должен быть неотрицательным целым числом.

Примеры

Биномиальные коэффициенты для числовых и символьных аргументов

Вычислите биномиальные коэффициенты для этих выражений.

syms n
[nchoosek(n, n), nchoosek(n, n + 1), nchoosek(n, n - 1)]
ans =
[ 1, 0, n]

Если один или оба параметра являются отрицательными числами, преобразовывают эти числа в символьные объекты.

[nchoosek(sym(-1), 3), nchoosek(sym(-7), 2), nchoosek(sym(-5), -5)]
ans =
[ -1, 28, 1]

Если один или оба параметра являются комплексными числами, преобразовывают эти числа в символьные объекты.

[nchoosek(sym(i), 3), nchoosek(sym(i), i), nchoosek(sym(i), i + 1)]
ans =
[ 1/2 + 1i/6, 1, 0]

Обработайте выражения, содержащие биномиальные коэффициенты

Много функций, таких как diff и expand, могут обработать выражения, содержащие nchoosek.

Дифференцируйте биномиальный коэффициент.

syms n k
diff(nchoosek(n, 2))
ans =
-(psi(n - 1) - psi(n + 1))*nchoosek(n, 2)

Расширьте биномиальный коэффициент.

expand(nchoosek(n, k))
ans =
-(n*gamma(n))/(k^2*gamma(k)*gamma(n - k) - k*n*gamma(k)*gamma(n - k))

Треугольник Паскаля

Используйте nchoosek, чтобы создать треугольник Паскаля.

m = 5;
for n = 0:m
    C = sym([]);
  for k = 0:n
    C = horzcat(C, nchoosek(n, k));
  end
  disp(C)
end
1
[ 1, 1]
[ 1, 2, 1]
[ 1, 3, 3, 1]
[ 1, 4, 6, 4, 1]
[ 1, 5, 10, 10, 5, 1]

Все комбинации векторных элементов

Найдите все комбинации элементов 1-by-5 символьным вектором - строкой взятый три и четыре за один раз.

Создайте 1-by-5 символьный вектор с элементами x1, x2, x3, x4 и x5.

v = sym('x', [1, 5])
v =
[ x1, x2, x3, x4, x5]

Найдите все комбинации элементов v взятыми три за один раз.

C = nchoosek(v, 3)
C =
[ x1, x2, x3]
[ x1, x2, x4]
[ x1, x3, x4]
[ x2, x3, x4]
[ x1, x2, x5]
[ x1, x3, x5]
[ x2, x3, x5]
[ x1, x4, x5]
[ x2, x4, x5]
[ x3, x4, x5]
C = nchoosek(v, 4)
C =
[ x1, x2, x3, x4]
[ x1, x2, x3, x5]
[ x1, x2, x4, x5]
[ x1, x3, x4, x5]
[ x2, x3, x4, x5]

Входные параметры

свернуть все

Количество возможного выбора, заданного как символьное число, переменная, выражение или функция.

Количество выбранного выбора, заданного как символьное число, переменная, выражение или функция. Если первым аргументом является символьный векторный v, то k должен быть неотрицательным целым числом.

Набор всего выбора, заданного как вектор символьных чисел, переменных, выражений или функций.

Выходные аргументы

свернуть все

Биномиальный коэффициент, возвращенный как неотрицательное скалярное значение.

Все комбинации v, возвращенного как матрица того же типа как v.

Больше о

свернуть все

Биномиальный коэффициент

Если n и k являются целыми числами и 0 ≤ k ≤ n, биномиальный коэффициент задан как:

(nk)=n!k!(nk)!

Для комплексных чисел биномиальный коэффициент задан через функцию gamma:

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

Советы

  • Вызов nchoosek для чисел, которые не являются символьными объектами, вызывает функцию MATLAB® nchoosek.

  • Если один или оба параметра являются комплексными или отрицательными числами, преобразовывают эти числа в символьные объекты с помощью sym, и затем вызывают nchoosek для тех символьных объектов.

Алгоритмы

Если k < 0 или n – k < 0, nchoosek(n,k) возвращается 0.

Если один или оба аргумента являются комплексными, nchoosek использует формулу, представляющую биномиальный коэффициент через функцию gamma.

Смотрите также

| | |

Представленный в R2012a