comb_fl()

计算 C(n, k)

函数 comb_fl() 是一个用户定义的函数 (UDF),可以计算 C(n, k),即从 n 个项中无序选择 k 个项的组合数。 它基于本机 gamma() 函数来计算阶乘。 有关详细信息,请参阅 facorial_fl()。 若要按顺序选择 k 个项,请使用 perm_fl()

语法

comb_fl(n, k)

详细了解语法约定

参数

客户 类型​​ 必需 说明
n int、long 或 real 总项数。
k int、long 或 real 选择的项数。

函数定义

可以通过将函数的代码嵌入为查询定义的函数,或将其创建为数据库中的存储函数来定义函数,如下所示:

使用以下 let 语句定义函数。 不需要任何权限。

重要

let 语句不能独立运行。 它必须后跟一个表格表达式语句。 若要运行 comb_fl() 的工作示例,请参阅示例

let comb_fl=(n:int, k:int)
{
    let fact_n = gamma(n+1);
    let fact_nk = gamma(n-k+1);
    let fact_k = gamma(k+1);
    tolong(fact_n/fact_nk/fact_k)
};
// Write your query to use the function here.

示例

若要使用查询定义的函数,请在嵌入的函数定义后调用它。

let comb_fl=(n:int, k:int)
{
    let fact_n = gamma(n+1);
    let fact_nk = gamma(n-k+1);
    let fact_k = gamma(k+1);
    tolong(fact_n/fact_nk/fact_k)
};
range n from 3 to 10 step 3
| extend k = n-2
| extend cnk = comb_fl(n, k)

输出

n k cnk
3 1 3
6 4 15
9 7 36