2026a

# nchoosek


二项式系数或所有组合

函数库: TyMath

# 语法

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

# 说明

b = nchoosek(n,k) 返回二项式系数,定义为:

这是从 n 项中一次取 k 项的组合的数目。n 和 k 必须为非负整数。示例


C = nchoosek(v,k) 返回一个矩阵,其中包含了从向量 v 的元素中一次取 k 个元素的所有组合。矩阵 C 有 k 列和 行,其中 m 为 size(v, 1)。示例

# 示例

二项式系数,“5选4”
using TyMath
b = nchoosek(5,4)
b = 5
五个数,一次取其中四个的所有组合
using TyMath
v = 2:2:10
C = nchoosek(v,4)
C = 5×4 Matrix{Int64}:
 2  4  6   8
 2  4  6  10
 2  4  8  10
 2  6  8  10
 4  6  8  10
三个无符号整数,一次取其中两个的所有组合
using TyMath
v = UInt16.([10,20,30])
C = Int.(nchoosek(v,UInt16(2)))
C = 3×2 Matrix{Int64}:
 10  20
 10  30
 20  30

# 输入参数

n - 可选项的数目
非负整数标量

可选项的数目,指定为非负整数标量。n 可以是任何数值类型,但必须为实数。

示例: 10

示例: Int16(10)

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

k - 选中项的数目
非负整数标量

选中项的数目,指定为非负整数标量。k 可以是任何数值类型,但必须为实数。

nchoosek(v,k) 对于不同类型的合并输入没有限制。

示例: 3

示例: Int16(3)

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

v - 所有可选项的集合
向量

所有可选项的集合,指定为向量。

示例: [1,2,3,4,5]

示例: [1+1im,2+1im,3+1im,4+1im]

示例: Int16.([1, 2, 3, 4, 5])

示例: [true, false, true, false]

数据类型: Int64 | Int32 | Int16 | Int128 | Float16 | Float32 | Float64 | UInt8 | UInt16 | UInt32 | UInt64

# 输出参数

b - 二项式系数
非负标量值

二项式系数,以非负标量值的形式返回。

C - v 中的所有组合
矩阵

v 中的所有组合,以类型与 v 相同的矩阵形式返回。矩阵 C 有 k 列和 n!/((n–k)! k!) 行,其中 n 为 size(v, 1)。

C 的每一行包含从 v 中选取 k 项的一种组合。C 中每一行的元素顺序与其在 v 中的顺序相同。

如果 k > length(v),则 C 是一个空矩阵。

# 另请参阅

perms | binomial