如下图片,要把3-8写进代码里,应该怎么写这部分代码
正常的排列组合代码不能计算带非整数,而r的值在(0,1),所以不能用一般的阶乘公式
自己定义一个函数即可:
func=@(x)(mod(x,1)==0)*factorial(round(x+.1))+(mod(x,1)~=0)*prod(x:-1:0);
func(3)
func(3.1)
3.1*2.1*1.1*0.1
可以发现func(3.1)和3.1 * 2.1 * 1.1 * 0.1求出来的结果都是0.7161
广义组合数和伽马函数可以计算小数的情况