固定二进制序列的排列组合个数计算方法

标题 固定二进制序列的排列组合个数计算方法

问题描述:一个固定二进制位数,固定二进制0和1的个数的二进制序列,计算该序列一共有多少种不同值的方法。例如5位二进制序列由3个1和2个0组合,计算该组合有多少种不同值的组合。

解决方法:先计算出这5个二进制总共的组合个数其中包含了相同值的结果(相同值代表如果一个组合里面的1或者0相互交换那么二进制值的结果是相同的),总共组合个数为5的阶乘即5x4x3x2x1=120。接下来要排除相同的值的个数,先假设不同值的个数为X,计算其中的一个值交换该值里面的相同的1和相同的0的位置得到和该值相同的组合的个数,例如该值为11100,交换第一位1和第二位1,或者交换第四位的0和第五位的0,得到的值都是11100。这种重复的值的组合个数应该为1的个数的阶乘乘以0的个数的阶乘即为(3x2x1)x(2x1)=12。不同的值的个数为X,每一个不同的值又可以变换出12个与该值相同的数(12包含了该值本身)。总共的结果为120,那么X=120除以12,X=10。其他的情况可以类比。N为二进制序列有M个1和K个0组合(N=M+K),组合个数=N!/(M! x K!) !代表阶乘。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值