数模问题!高分悬赏!答案好的追加分!数模高手帮忙!谢谢~
在出发去度假之前,你希望将你的一些最重要的文件备份到软盘上。每个空白软盘的容量是1.44MB。你需要备份的16个文件的大小分别为:46KB,55KB,62KB,87KB,...
在出发去度假之前,你希望将你的一些最重要的文件备份到软盘上。每个空
白软盘的容量是1.44MB。你需要备份的16 个文件的大小分别为:46KB,55KB,
62KB,87KB,108KB,114KB,137KB,164KB,253KB,364KB,372KB,388KB,
406KB,432KB,461KB,851KB。假定你无法使用压缩软件,但软盘数量足够,
那么应如何将这些文件分配到每一张软盘上才能使使用的软盘数目最少?
3楼方法?别说是凑的。。。编程的话给个算法,谢谢 展开
白软盘的容量是1.44MB。你需要备份的16 个文件的大小分别为:46KB,55KB,
62KB,87KB,108KB,114KB,137KB,164KB,253KB,364KB,372KB,388KB,
406KB,432KB,461KB,851KB。假定你无法使用压缩软件,但软盘数量足够,
那么应如何将这些文件分配到每一张软盘上才能使使用的软盘数目最少?
3楼方法?别说是凑的。。。编程的话给个算法,谢谢 展开
8个回答
展开全部
算法:
先从大到小排好,你给的数据是从小到大排的
46KB,55KB, 62KB,87KB,108KB,114KB,137KB,164KB,253KB,364KB,372KB,388KB,406KB,432KB,461KB,851KB
然后1.44MB=1.44x1024KB=1474KB
然后从16个数据中依次由大到小加下去,851+461=1312<1474
再用1474-1312=162,所以下一个是加137
1312+137=1449<1474
再用1474-1449=25,发现数据中没有比25小的
所以第一次结束
第一次851+461+137
接下来再处理剩下的13个数
46KB,55KB, 62KB,87KB,108KB,114KB,164KB,253KB,364KB,372KB,388KB,406KB,432KB
从13个数据中依次由大到小加下去,432+406=838<1474
1474-838=636,所以下一个加388
838+388=1226<1474
1474-1226=248,所以下一个加164
1226+164=1390<1474
1474-1390=84,所以下一个加62
1390+62=1452,
1474-1452=22,发现数据中没有比25小的
所以第二次结束
第二次432+406+388+164+62
接下来再处理剩下的8个数
46KB,55KB, 87KB,108KB,114KB,253KB,364KB,372KB
从8个数据中依次由大到小加下去,372+364=736<1474
1474-736=738,所以下一个加253
738+253=991<1474
1474-991=583,所以下一个加114
991+114=1105<1474
1474-1105=369,所以下一个加108
1105+108=1213<1474
1474-1213=261,所以下一个加87
1213+87=1300<1474
1474-1300=174,所以下一个加55
1300+55=1355<1474
1474-1355=119,所以下一个加46
1355+45=1400<1474
至此已经选完了
第三次选的结果是46+55+87+108+114+253+364+372
三次选完,所以需要三张
先从大到小排好,你给的数据是从小到大排的
46KB,55KB, 62KB,87KB,108KB,114KB,137KB,164KB,253KB,364KB,372KB,388KB,406KB,432KB,461KB,851KB
然后1.44MB=1.44x1024KB=1474KB
然后从16个数据中依次由大到小加下去,851+461=1312<1474
再用1474-1312=162,所以下一个是加137
1312+137=1449<1474
再用1474-1449=25,发现数据中没有比25小的
所以第一次结束
第一次851+461+137
接下来再处理剩下的13个数
46KB,55KB, 62KB,87KB,108KB,114KB,164KB,253KB,364KB,372KB,388KB,406KB,432KB
从13个数据中依次由大到小加下去,432+406=838<1474
1474-838=636,所以下一个加388
838+388=1226<1474
1474-1226=248,所以下一个加164
1226+164=1390<1474
1474-1390=84,所以下一个加62
1390+62=1452,
1474-1452=22,发现数据中没有比25小的
所以第二次结束
第二次432+406+388+164+62
接下来再处理剩下的8个数
46KB,55KB, 87KB,108KB,114KB,253KB,364KB,372KB
从8个数据中依次由大到小加下去,372+364=736<1474
1474-736=738,所以下一个加253
738+253=991<1474
1474-991=583,所以下一个加114
991+114=1105<1474
1474-1105=369,所以下一个加108
1105+108=1213<1474
1474-1213=261,所以下一个加87
1213+87=1300<1474
1474-1300=174,所以下一个加55
1300+55=1355<1474
1474-1355=119,所以下一个加46
1355+45=1400<1474
至此已经选完了
第三次选的结果是46+55+87+108+114+253+364+372
三次选完,所以需要三张
展开全部
第一张: 1432KB
55KB,253KB,364KB,372KB,388KB
第二张: 1436KB
137KB,406KB,432KB,461KB
第三张: 1432KB
46KB,62KB,87KB,108KB,114KB,164KB,851KB。
55KB,253KB,364KB,372KB,388KB
第二张: 1436KB
137KB,406KB,432KB,461KB
第三张: 1432KB
46KB,62KB,87KB,108KB,114KB,164KB,851KB。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用3个盘
46 62 406 55 87 432 108 114 164
461 253 372 388
364 851 137
46 62 406 55 87 432 108 114 164
461 253 372 388
364 851 137
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
46+55+...+851=4300
4300/1440 = 430/144 = 215/72 = 3 - 1/72.
所以,至少需要3张软盘。
1440 - (851+461) = 128 = 114 + 14, [851,461,114]...14
1440 - (432+406+388)= 214 = 164 + 46 + 4, [432,406,388,164,46]...4
1440 - (372+364+253+137+108+87+62+55)=2,[372,364,253,137,108,87,62,55]...2
这样,
第一张存大小分别为851,461,114(KB)的3个文件;
第二张存大小分别为432,406,388,164,46(KB)的5个文件;
其他文件存在第三张软盘上,可以满足要求。
所以,
上面这种存法使用的软盘数目最少。
4300/1440 = 430/144 = 215/72 = 3 - 1/72.
所以,至少需要3张软盘。
1440 - (851+461) = 128 = 114 + 14, [851,461,114]...14
1440 - (432+406+388)= 214 = 164 + 46 + 4, [432,406,388,164,46]...4
1440 - (372+364+253+137+108+87+62+55)=2,[372,364,253,137,108,87,62,55]...2
这样,
第一张存大小分别为851,461,114(KB)的3个文件;
第二张存大小分别为432,406,388,164,46(KB)的5个文件;
其他文件存在第三张软盘上,可以满足要求。
所以,
上面这种存法使用的软盘数目最少。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
51p[k
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Matlab程序做 里面的lingo做一下优化
可以先下载这样一个
程序
可以先下载这样一个
程序
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询