我有一个超级压缩程序算法的思路,不知能不

商业无盘软件的使用技巧,请遵守中国版权法。

版主: 管理小组

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

我有一个超级压缩程序算法的思路,不知能不

帖子liuqingfeng » 2003-10-23 22:47

我们知道有一些循环小数可以由两个整数相除到,比如6/7=0.8571428571428.......,那么我们可以利用这个原理,将文件采用一定的法则编码,假设某个文件经过编码后为:8571428571428.......,那么无论多大的文件我们都可以将其定义为两个整数的比值(如6/7)和一个精度值(如小数后1000K位)。也说就是说,文件压缩后的大小跟原文件几乎无关,我想这个思路应该行得通,数学我不在行(虽然我是教数学的),不知能不能由一个无限(或有限)的小数得到两个整数的比值?如果可以的话,那这种压缩算法编出来的程序将具有最大的压缩率!

我们只要知道两个整数和一个精度值,就可以将一个经此算法压缩后的文件解压!
呵呵,以后再大的系统就可以用小猫花几秒时间下载,不是爽哉!

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-10-23 23:16

有感想的回帖哦。

coolduhong
中级会员
中级会员
帖子: 108
注册: 2002-11-06 18:56

行不通的

帖子coolduhong » 2003-10-24 0:07

呵呵,很有意思的想法啊,可惜,这是绝对不可能的
无论你怎么压缩,有一个原则是不变的,那就是你的保留压缩前的信息,这个信息是不可能无限压缩的,有一个限度,就以你刚才的例子来说,看起来好象把一个很大的文件压缩到了不可思议的小,其实不然,因为你的文件实际上就只有一个信息:6/7的前1000位,所以你能压到这么小;让我们反过来想,随便找一个1000位的数字,你能恰好把他表达成一个分数的前多少位吗,理论上可以,但是这个分数的分子和分母的位数加起来说不定也有个400~500位哦?你说是不是这个道理啊?

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-10-24 0:32

coolduhong兄,你误解了。

我的意思是:只要能找到正确表示这个数的两个整数的比值就可以了,至于那个精度值就用来指定要截取几位数的(因为这个比值可能是个无限不循环小数呵),比如还是那个例子,一个文件经过编码后的数值是“8571428571428.......678”,而6/7的值可是无限的啊,所以我们要指定“8571428571428.......678”在6/7值中的哪一段!因此,我们还需要一些参数来界定它。当然这个精度值只是一个可能比较大的整数而已!不会占用多少空间的!
不知我说明白了没有?

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-10-24 0:44

难就难在怎么找到是哪两个整数的比值,而且这两个整数的位数不要太大,即使是coolduhong所说的有4、5百位,采用另一些压缩法也可以解决啊。

想想还有什么漏洞?

lizj
中级会员
中级会员
帖子: 161
注册: 2001-03-16 12:40

帖子lizj » 2003-10-24 12:22

走火入魔了!!!!
冷静一下想想吧,漏洞太多了!!!呵呵

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-10-24 21:15

我知道这是不可能的,如果可能的话,也轮不到我呵。

只是觉得奇怪,为什么不行呢?

老大们,把不行的原因说清楚些,好不?

谢谢!

头像
极品人渣
高级会员
高级会员
帖子: 484
注册: 2001-01-27 13:00
QQ: 0
联系:

帖子极品人渣 » 2003-10-30 22:45

挺有意思的,有没有逆算法能找出哪个比值合适呢?数学高手发发言啊,我建议到 无盘技术 去发个小题引几个数学高手来。

头像
音乐虫子
高级会员
高级会员
帖子: 391
注册: 2002-02-01 13:56
QQ: 0
联系:

帖子音乐虫子 » 2003-10-31 4:10

思路是可对头的,但是哪有那么凑巧啊?所以实际意义不大。

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-10-31 9:10

极品人渣兄说得没错,关键是数学的建模啊!如果这一问题搞清楚了,也就成了!可能不存在这样的数学模型吧,不然应该早就有人做出来了!

chinaren12
高级会员
高级会员
帖子: 444
注册: 2001-09-15 23:35

帖子chinaren12 » 2003-11-01 15:26

我也觉得你的想法确实很好,
但是你的压缩因子是不可能找到的,
因为你的压缩因子基本上等于你的文件长度了(条件是你的文件大小比较小的)

说的不对不要笑呀

头像
jiaonwy
初级会员
帖子: 17
注册: 2003-04-22 13:11
QQ: 0
联系:

帖子jiaonwy » 2003-11-02 11:07

这个思路不错
问题是要解决任一小数的两个最小自然数相除的算法。
如能解决,数学界可是又一次革命了
可惜诺贝尔奖不设数学奖,不然中国就有两位了
你可就是继华、陈之后的第三人了。

不过这个算法不是在时间上就是在空间上的开销可也不可等闲视之哦!
如果要压1G的内容,在不考虑目录结构及层次的问题,只是一个文件的情况
你先要将二进制转为十进制,这个转换就不得了
然后假定它是一个小数,
再找它的自然数除法表示,我的天
这时要么就是一个一个除做比较,要么是在数据库中找(这个数据库可不小哦)。晕倒。。。。。。

头像
liuqingfeng
超级会员
超级会员
帖子: 618
注册: 2003-08-31 17:40
QQ: 0
联系:

帖子liuqingfeng » 2003-11-03 17:59

所以关键是数学建模啊!
不要一个数一个数地去试,这要在数学上提出一个可行的模型,关键点不在程序设计上,而是怎么找出一个数学模型来表示。
当然,这个小数不一定非要用十进制表示。

其实一切的一切就是数学模型啊

deanlh
超级会员
超级会员
帖子: 836
注册: 2001-01-15 13:00

帖子deanlh » 2003-11-03 18:07

呵呵!!你可以把你的方案卖给WINRAR、WINZIP、WINACE等试试。如果你的方法确实是可行的,按你的讲法,他们应该是会感兴趣的!!!

shiftx
普通会员
普通会员
帖子: 46
注册: 2003-04-08 11:24
QQ: 0
联系:

帖子shiftx » 2003-11-03 18:21

这个问题能不能删了?

看到我就觉得很难受。如果真有心去做数据压缩的话,先去看一下基本的原理再来。信息能被压缩是因为存在冗余,就象有水份一样,可以挤出来;石头就不一样了。最起码,数据必须有骨头,才能被处理的。不是简单的7/6就得到了一幅美图.

总之,请删了吧。我们还是讨论无盘比较好。


回到 “无盘软件与应用::Diskless software”

在线用户

用户浏览此论坛: 没有注册用户 和 10 访客