exponenta event banner

nchoosek

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

Синтаксис

Описание

пример

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около-5 символьный вектор строки, взятый по три и четыре за раз.

Создать 1около-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! (n − k)!

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

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

Совет

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

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

Алгоритмы

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

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

См. также

| | |

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