可重复组合公式的证明


       从n个不同元素中取出m的元素(方法是从n个元素中每次取出一个后,放回,再取另外一个,直到取出m个元素),并成一组,叫做n个不同元素的一个m-可重组合。


        n个不同元素的m-可重组合数为C(m,n+m-1),m可以是任意的正整数。



证明:
           实际上大家还应该注意到一点,就是有重复组合不考虑取出的元素的顺序,通俗来说,你第一次取出一号元素第二次取出三号元素和你第一次取出三号元素第二次取出一号元素是一样的情况。
           可以把该过程看作是一个“放球模型”;n个不同的元素看作是n个格子,去掉头尾之后中间一共有(n-1)块相同的隔板;用m个相同的小球代表取m次;则原问题可以简化为将m个不加区别的小球放进n个格子里面,问有多少种放法;
          注意到格子的头尾两块隔板无论什么情况下位置都是不变的,故去掉不用考虑;相当于m个相同的小球和(n-1)块相同的隔板先进行全排列:一共有(m+n-1)!种排法,再由于m个小球和(n-1)块隔板是分别不加以区分的,所以除以重复的情况:m!*(n-1)!;
     于是答案就是:(m+n-1)!/(m!*(n-1)!)=C(m,n+m-1)。

  • 8
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Dempster组合公式是一种用于融合不同专家意见的方法。它基于经验推断,假设不同专家的意见是独立的,并使用贝叶斯理论来将这些意见结合起来。这样做可以获得更加可靠和准确的意见。 在Matlab中实现Dempster组合公式,需要先收集不同专家的意见,并将它们用一个矩阵来表示。每一行代表一个专家的意见,每一列代表一个候选项。 接着,需要对每一个专家的意见使用Memberhsip函数将其转化为Belief函数。Membership函数为每一个候选项计算其与专家意见的相似度,而Belief函数是基于相似度计算的概率值。可以使用以下代码实现: ```matlab function belief = membership(x,y) % x是候选项,y是专家意见 belief = sum(min(x,y))/sum(y); end ``` 然后,将所有专家的Belief函数值传入Dempster组合公式,通过以下代码实现: ```matlab function result = dempster(beliefs) % beliefs是所有专家的Belief函数值,每一行是一个专家的值 n = size(beliefs,1); % 专家数 m = size(beliefs,2); % 候选项数 % 计算所有专家的证据识别 C = zeros(n,2); for i = 1:n C(i,1) = 2^(i-1); C(i,2) = sum(beliefs(i,:)); end % 开始Dempster组合计算 W = ones(m,n+1); for i = 1:n W(:,i+1) = beliefs(i,:)'; end for i = 1:m for j = 1:2^n-1 idx = find(dec2bin(j,n)-'0'==1); D = prod(W(i,idx+1),2); p = sum(D.*C(idx,2)); W(i,j+1) = (1/p)*prod(1-D); end end % 返回结果 result = sum(W(:,end).*[1:m]'); end ``` 最后调用该函数即可获得融合后的最终结果。 总之,使用Dempster组合公式可以将多个专家的意见融合起来,并得出更加可靠的结论。在Matlab中实现Dempster组合公式所需要的核心代码已经在上述程序中给出。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值