一个排列组合的问题:有18位的二进制环形编码(18位连成一圈,只能有一个连续的4个1作为识别码),请问这种组合共有多少种? 有18位的二进制环形编码(18位连成一个圆圈,只能有一次连续的4个1作为识别码),请问这种组合共有多少种? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先计算断开的排列数,需要考虑头尾连接后的情况然后除以18 147456?怎么算的,应该少于2的14次方才对呀。 因为是环形,所以还要乘以18.位不同也应算作一种方案。 其排列如下:(从第一位开始,数字表示此位的排列数)222212221222122211 = 2^13 * 18 = 147456 只能有一次连续的4个1作为识别码,连续的4个1在哪呢? 51696种,因为有且只有4个连续的1的序列,所以这4个连续的1前后必须是0,也就是011110,这样就剩下12位了(18-4-2=12)因为是环形的,所以可以求出12位中不包含4个连续1的数字的个数,然后乘以18就是要求出的数。12位中不包含4个连续1的数字的个数,可以这样求出,用((2^12)-(含有4个连续1的数字的个数))也就是说结果是18×((2^12)-(12位中含有4个连续1的数字的个数))=18×(4096-1224)=18×2872=51696 关于自定义控件在视图中的放大与缩小的实现 如何让焦点只处于对话框? Socket的多客户端的实现 有分求解! 广义C/S系统可分为哪几种类型?已知有客户端/服务器结构,三层结构。 在BOUUTN画的图如何转画到Static 基于对话框的工程,里面有文档处理,如何写注册表将文档和我的程序关联? 请问如何在程序中得到当前应用程序的路径? 如果不在窗口里打开一个网页也能获得CWebBorwser指针? 串口通讯中怎么发送一个回车符?(在线) 各位大佬在C++MFC中怎么实现会员自动升级 连接错误 求助!一个表达式计算的问题
然后除以18
222212221222122211 = 2^13 * 18 = 147456