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=(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 |