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-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 ≤ <reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>  , двучленный коэффициент определен как:

(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