非常碰巧,在最近几个项目中都遇见计算阶乘的情况,主要是计算排列组合数的时候会用到阶乘。
理论
PowerBI DAX 中默认是没有计算阶乘的函数的。这里给出一种在PowerBI DAX 中计算阶乘的方法。
在数学的定义中,对阶乘的定义是这样的: N ! = 如果 N = 0 , N ! = 1; 否则 N = N × ( N - 1 ) !
这是一个使用递归的经典场景。
可惜的是,PowerBI DAX并不支持阶乘,阶乘的另一种计算方式是可以直接进行计算。例如:
N ! = 1 × 2 × … × N
PowerBI DAX实现
下面给出在 PowerBI DAX 的计算方式:
其中,通过参数获得 N值,然后通过N值构建一个序列,再对序列进行连乘得到最后结果。
PowerBI 实现效果
用PowerBI实现的效果如下:
阶乘的可视化
在学习理论的时候,我们都知道如果一个数列呈现阶乘
如果我们直观对比x的平方,2的x次方与x的阶乘,可以看出:
随着N的增长,阶乘的增长是很恐怖的。
小结
本案例使用参数灵活地实现了N的阶乘,也许在需要的时候就可以用了。