计数二进制位模式组合

我正在寻找一种算法,将数出的二进制比特模式的数量n-bit字它们是等于或小于一个任意限制为小于2^n 此外,我想以产生用于所有的计数1-bit组合2-bit组合等显 ​​然,如果限分别2^n ,将有2^n的组合(C(n,1) 1-bit combinations plus C(n,2) 2-bit plus C(n,3) 3-bit and so on) 如果限制被强加,然而,不是每个人的那些可能的组合将是有效的(小于强加的限制)。

例如,假设n=4 有16种可能的位模式,其中15包含1个或多个1-bits 。 如果为10的极限被强加,这些模式大于10将不包括在计数。 因此,对于单位模式时,有效的人将是00010010 0100 1000 双位模式将是0011 0101 0110 1001 模式10101100将不会被计算在内,因为他们超过10的唯一3位位是0111而唯一的4位模式1111超过限制。

如果F是我的计数功能F(4,10,1)将返回4的数目4-bit 1比特的图案,小于F(4,10,2)将返回4,其中为C(4,2)是6.由于实际值n可以是大的(40或比特),列举的可能模式,测试对极限,和计数有效的人是不实际的。

任何想法如何这可能是有效的呢?

--------------解决方案-------------

因为这被定为家庭作业的问题,你为什么不提供你的想法,我们可以给你的建议。 总是可以设计一个低效率的算法,并分析了尝试和创造效率...

跌破跌停的范围分成大小2 ^ m个区域有一个固定的前缀,并采取在前缀考虑位的设定。

只是一个提示,而是试图攻击这个感应/递归(取绰号你喜欢); 降低了问题的本身较小的实例。

分类:设计模式 时间:2012-01-01 人气:0
分享到:

相关文章

  • Head First设计模式 - 组合模式 2014-06-17

    我读在Head First设计模式组合花样的第12章. 在541页,样本DJView,它cant't正确我computer.when运行我按下"开始",程序只响一次,而不是循环. 我不知道,因为我的系统环境是否. 但如果我在类BeatModel的方法加元一行代码,它works.like: public void meta(MetaMessage message) { if (message.getType() == 47) { beatEvent(); sequencer.setMic

  • 接口和外观设计模式 2013-01-17

    我一直在使用一个门面设计模式组合在一起所有行政的funcionality我需要在我的计划. 在我的类库Company.Infrastructure.Repositories.Administration我有: [Pluggable("Default")] public class AdminRepository : IAdminRepository { #region private members #endregion #region protected members protec

  • 选择ASP.NET设计模式 2013-07-11

    我看到AsP.NET设计模式在这里,我怎样才能了解哪些设计模式是适合我们的项目? 我们的大多数项目都是办公自动化项目. 我从未使用过任何ASP.NET设计模式在我的项目. 只是我用微软nettiers感谢. --------------解决方案------------- 该设计模式在您的链接页面发现(即工厂模式,观察者模式,Decorator模式等),有一个非常通用的,并设计具体的任务,任何类型的应用程序框架和编程语言有帮助. 通常一个大的应用程序将不只是其中之一,但后续将包含几个这样的模式的组

  • 二进制标志六角组合 2012-02-24

    以下哪项回馈63长(在Java中),以及如何? 0x0 0x1 0x2 0x4 0x8 0x10 0x20 我使用NetworkManager API标志的工作是否有帮助. 我得到63的操作之一,但不知道我应该怎么搭配的返回值来说明. 谢谢 --------------解决方案------------- 63 32 | 16 | 8 | 4 | 2 | 1 32 | 16 | 8 | 4 | 2 | 1 32 | 16 | 8 | 4 | 2 | 1其中| 是二进制或操作员 . 或者换句话说(十

  • 二进制序列组合发生器,在Ruby中 2012-05-27

    代码工作,但感觉很强力,建议? 代码的目标是与该阵列的长度提供一个数组长度,然后尽可能快地产生所有可能的唯一的二进制组合. 码: class Array def sequence(i = 0, *a) return [a] if i == size self[i].map {|x| sequence(i+1, *(a + [x])) }.inject([]) {|m, x| m + x} end end [(0..1),(0..1),(0..1)].sequence 输出: [[0, 0, 0]

  • 如何映射小的二进制对象正确SQLite中/ NHibernate的组合(错误类型亲和力)? 2012-07-17

    尝试存储的C#/.NET type属性byte[]中SQLite 这是我的映射: <class name="MyClass" lazy="false" table="MyTable"> <property name="MyProperty" type ="BinaryBlob" access="property" /> </class> 在SQL se

  • 什么样的组合的提升工具允许使用抽象工厂设计模式? 2013-09-02

    据我了解,升压::功能的组合,提高工厂::和std ::地图允许一个创建对象的工厂. http://www.boost.org/doc/libs/1_49_0/libs/functional/factory/doc/html/index.html洛基具有抽象工厂,但由于某种原因,升压没有它. 什么是升压方式使用抽象工厂模式? 我能想到的一种方式是通过抽象的接口手动创建产品 - 通过创造产品相同的创建策略. 我会更高兴,如果你的答案使用静态多态性.

  • 产生的二进制值的所有组合 2013-10-11

    基本上,给出N,例如3,我怎么能创造T和函数的所有组合值的列表 例如. 对于n = 3,(化妆的bool 3)应返回((TTT),(TTF),...(FFF)) 这类似于质疑函数返回ñ布尔值的所有组合? 但在方案实施 --------------解决方案------------- 不是最有效的: (define (make-bools n) (if (= n 0) '() (append (addhead 'T (make-bools (- n 1))) (addhead 'F (make-bo

  • 有没有告诉BREW(适用于Mac OS自制包管理器)来构建组合64分之32位二进制文​​件的标准方式? 2014-03-25

    有没有告诉冲泡编译"胖"32/64组合库库的标准方式? 我想构建组合32/64位的libxml2? /usr/local/lib/libxml2.dylib: Mach-O 64-bit dynamically linked shared library x86_64 我能做到这一点,如果我构建库"手动",但我不知道是否有一些约定,BREW和BREW公式告诉酿造做到这一点. --------------解决方案------------- 有没有标准的方法. 一些公式

  • 要重构设计模式:基于状态显示/隐藏控件的不同组合 2014-04-15

    假设你有一个控制,B,C,D和E都具有可见性属性. 你也有一定的状态1,2,3,4,5和6,其中将显示的控制的各种组合. 目前,这是由开关语句来处理的每个状态:即 Select Case PageState case "1" a.visible = false b.visible = true c.visible = false d.visible = true e.visible = false case "2" a.visible = true b.visibl

Copyright (C) 55228885.com, All Rights Reserved.

55228885 版权所有 京ICP备15002868号

processed in 0.447 (s). 10 q(s)