高分求一种算法 高分求一种算法文件A通过算法1得到文件摘要数据m文件B加上数据m通过算2,能够得到文件A高分问什么算法能够满足这里的算法1和算法2? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 文件A和文件B可能是完全不同的文件,也里面局部数据相同。其实我要解决的问题场景是:文件A本地文件,文件B实际是文件A的升级版本,在自动升级过程中,文件B是放在服务器上的,本地用户需要把文件A升级成文件B。正常实现,是通过http请求把文件B下载下来然后覆盖A,但这样要现在整个文件B的数据,下载量比较大。我想通过某种算法,减少下载量。 LZ的想法就是根据A把B压缩成m,再跟A把m解压缩成B。不过具体的算法与A、B的长度和特征有关,不能一概而论。最好用多个小文件,这样就可以只更新部分文件了。 记得有这样的工具叫:patch不过,我认为做自动升级,这样不是很实用,理由如下:1.如果 A,B 差异太大的话,最后生成的差异文件可能比 B 还大,不划算。2.增加了复杂度,如果下载并发量很大,服务器负荷重(计算量大),当然也可以通过缓存等手段优化,但毕竟不是很方便。3.服务器上必须保留多种版本的文件,或不同版本间的差异文件,因为客户端要升级的基础版本可能不一样(这是很可能的),如果只是覆盖,则简单得多。象瑞星等的“增量升级”跟你这个不一样,它可以增量的只是病毒库,病毒库你可以想象是个小数据库,“增量升级”只是往里添加记录而已。另外我建议你,对于重要文件,也不要用版本号、文件时间什么的做升级标志,用文件的摘要值(如MD5, SHA等)更好,只要摘要值不一样,就下载覆盖,这样做的好处是:可以有效防止客户端的文件被病毒或人为破坏... 貌似有现成的工具哦,你说的需求其实就是做一个补丁包对不?找找linux的补丁制作工具的源代码吧我记得是diff 请教一个splitter中放置工具条的问题 对话框返回问题 串口接收端SetupComm(m_hComm, 2000, 2000),然后发送端一次发送3000,怎么接收? 关于U盘分区表的问题 简单的三维作图问题--可我不会 这段代码为什么在vc++6.0和TC++3.0下调试都通不过 有远大理想的人赚大钱了!! 在这么多编程软件中,哪些是语言?哪些是开发工具呢? 2048通关的程序员们,来试试脚本版的吧!!! 求推荐:好用的 网格 控件 大家好,请问这个软件的华丽界面是怎么做的? 推荐本学习MFC的书好吗?
文件A本地文件,文件B实际是文件A的升级版本,在自动升级过程中,文件B是放在服务器上的,本地用户需要把文件A升级成文件B。
正常实现,是通过http请求把文件B下载下来然后覆盖A,但这样要现在整个文件B的数据,下载量比较大。
我想通过某种算法,减少下载量。
当然也可以通过缓存等手段优化,但毕竟不是很方便。3.服务器上必须保留多种版本的文件,或不同版本间的差异文件,
因为客户端要升级的基础版本可能不一样(这是很可能的),如果只是覆盖,
则简单得多。象瑞星等的“增量升级”跟你这个不一样,它可以增量的只是病毒库,
病毒库你可以想象是个小数据库,“增量升级”只是往里添加记录而已。另外我建议你,对于重要文件,也不要用版本号、文件时间什么的做升级标志,
用文件的摘要值(如MD5, SHA等)更好,只要摘要值不一样,就下载覆盖,
这样做的好处是:可以有效防止客户端的文件被病毒或人为破坏...
我记得是diff