# 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 列和
# 示例
二项式系数,“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 是一个空矩阵。