实现背包问题 package problem 1. 问题描述 假设有一个能装入总体积为T的背包和n件体积分别为w1 , w2 , … , wn 的物品,能否从n件物品中挑选若干件恰好装满背包,即使w1 +w2 + … + wn=T,要求找出所有满足上述条件的解。例如:当T=10,各件物品的体积{1,8,4,3,5,2}时,可找到下列4组解: (1,4,3,2)、(1,4,5)、(8,2)、(3,5,2)。 2. 基本要求 读入T、n、w1 , w2 , … , wn 3.提示: 可利用递归方法:若选中w1 则问题变成在w2 , … , wn 中挑选若干件使得其重量之和为T- w1 ,若不选中w1,则问题变成在w2 , … , wn 中挑选若干件使得其重量之和为T 。依次类推。 也可利用回溯法的设计思想来解决背包问题。首先将物品排成一列,然后顺序选取物品装入背包,假设已选取了前i 件物品之后背包还没有装满,则继续选取第i+1件物品,若该件物品“太大”不能装入,则弃之而继续选取下一件,直至背包装满为止。但如果在剩余的物品中找不到合适的物品以填满背包,则说明“刚刚”装入背包的那件物品“不合适”,应将它取出“弃之一边”,继续再从“它之后”的物品中选取,如此重复,,直至求得满足条件的解,或者无解。 注:没压缩密码
上传时间: 2014-01-18
上传用户:yxgi5
写一个程序,列出在0和1之间的所有分母不大于N的最简分数,下面是N=5时的情况: 0/1 1/5 1/4 1/3 2/5 1/2 3/5 2/3 3/4 4/5 1/1 总共有11个分数! 还需要进行排序。
标签: 程序
上传时间: 2013-12-11
上传用户:chenbhdt
质数竖式 下面的竖式是一个乘法运算问题,它的每个*号可以代入一个数字, 这个数字属于一个特定的由N个数字组成的集合。如果这个集合是{2,3,5,7}, 那么这个竖式称作“质数竖式”。 此程序就是为了解决这样一个问题而做的。
标签: 乘法运算
上传时间: 2013-12-22
上传用户:xz85592677
逻辑分析仪 PC发送到单片机的命令共7个字节: 第一字节是触发信号,每bit对应一路信号,1为高电平触发,0为低电平触发; 第二字节是触发有效信号,每bit对应一路信号,1为忽略,0为有效; 第三、四字节是采样时间,对应如下: 2us=0x0402,5us=0x0a02,10us=0x1402,10us=0x2802,50us=0x6402,100us=0xc802,200us=0x3203,500us=0x7d03,1ms=0xfa03,2ms=0x7d04,4ms=0xfa04,8ms=0x7d05,16ms=0xfa05; 第五、六字节是一样的,为预触发:8=0%,7=12.5%,6=25%,5=37.5%,4=50%,3=62.5%,2=75%,1=87.5% 第七字节为模式,0=普通模式;1=外部时钟,上升延;2=外部时钟,下降延;3=外部触发,上升延;4=外部触发,下降延;5=静态模式;6没有查到,不知道是什么;7为测试模式的二进制信号;8为测试模式的AA、55;9为测试模式的清零。
上传时间: 2013-12-12
上传用户:luke5347
曲谱存贮格式 unsigned char code MusicName{音高,音长,音高,音长...., 0,0} 末尾:0,0 表示结束(Important) 音高由三位数字组成: 个位是表示 1~7 这七个音符 十位是表示音符所在的音区:1-低音,2-中音,3-高音 百位表示这个音符是否要升半音: 0-不升,1-升半音。 音长最多由三位数字组成: 个位表示音符的时值,其对应关系是: |数值(n): |0 |1 |2 |3 | 4 | 5 | 6 |几分音符: |1 |2 |4 |8 |16 |32 |64 音符=2^n 十位表示音符的演奏效果(0-2): 0-普通,1-连音,2-顿音 百位是符点位: 0-无符点,1-有符点 调用演奏子程序的格式 Play(乐曲名,调号,升降八度,演奏速度) |乐曲名 : 要播放的乐曲指针,结尾以(0,0)结束 |调号(0-11) : 是指乐曲升多少个半音演奏 |升降八度(1-3) : 1:降八度, 2:不升不降, 3:升八度 |演奏速度(1-12000): 值越大速度越快
标签: MusicName unsigned char code
上传时间: 2013-12-15
上传用户:671145514
同一个数会由于采用不同的基数而使得其表现的形式是完全不一样的,在我们的学习中,我们熟悉的基数有10进制、12进制、60进制、2进制、8进制和16进制。比如数据12,如果我们用2进制表示,则它就是1100;如果用3进制表示就是110;如果用8进制表示则是14。我们的编程任务就是与数的进制(也就是基数)有关。 程序中我们会给大家很多个数对(假设每个数对的数用X和Y表示),程序需要解决的问题就是为X和Y各选择一个最小的基数,以使得这两个数在其选择的基数上是一对相等的数。 例如,12和5这个数对,我们可以为12选择基数3,为5选择基数6,这样一来12(base 3)=5(base 6),因为12(base 3)就是10进制数5,而5(base 6)也是10进制数中的5。 程序的输入是通过文件完成的。 文件中的每一行都包含一个数对X和Y,两个数通过一个或多个空格符分割,与X和Y相关联的有效基数值范围为2~36。X和Y的合理数值表示字符包括0—9和A-Z(表示数值10-35)。 文件的最后一行用一个数字0表示输入的结束。
标签:
上传时间: 2013-12-17
上传用户:skfreeman
用java GUI写的计算器程序。程序安全,健壮。多输几个小数点也只记录一个,和Windows XP 里的计算器(标准型),功能上是一样的。2+3=5,“2+3***”结果为5,不会连乘。“5*6==180”会连乘,2+3*8=40,2+3***8=40,9/0=0不报错
上传时间: 2015-09-15
上传用户:liglechongchong
上下文无关文法(Context-Free Grammar, CFG)是一个4元组G=(V, T, S, P),其中,V和T是不相交的有限集,S∈V,P是一组有限的产生式规则集,形如A→α,其中A∈V,且α∈(V∪T)*。V的元素称为非终结符,T的元素称为终结符,S是一个特殊的非终结符,称为文法开始符。 设G=(V, T, S, P)是一个CFG,则G产生的语言是所有可由G产生的字符串组成的集合,即L(G)={x∈T* | Sx}。一个语言L是上下文无关语言(Context-Free Language, CFL),当且仅当存在一个CFG G,使得L=L(G)。 *⇒ 例如,设文法G:S→AB A→aA|a B→bB|b 则L(G)={a^nb^m | n,m>=1} 其中非终结符都是大写字母,开始符都是S,终结符都是小写字母。
标签: Context-Free Grammar CFG
上传时间: 2013-12-10
上传用户:gaojiao1999
用python编写的24点程序,改进后同时可以计算寻找诸如(((1+2)*3-4)+5*6*7+8)*9 = 2007这样的解法
上传时间: 2015-09-25
上传用户:钓鳌牧马
FreeReport 2.34 consists of the report engine, designer and previewer, with capabilities comparable to QuickReport 3 and ReportBuilder 3.52. FreeReport 2.34 works with Delphi 2/3/4/5/6 and C++ Builder 1/3/4. Freeware, full source code, royalty-free.
标签: capabilities FreeReport comparable previewer
上传时间: 2013-12-26
上传用户:zhaiye