Биномиальный коэффициент
b = nchoosek(n,k)
C = nchoosek(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]
Если k < 0 или n – k < 0, nchoosek(n,k)
возвращается 0.
Если один или оба аргумента являются комплексными, nchoosek
использует формулу, представляющую биномиальный коэффициент через функцию gamma
.