本帖最后由 nog 于 2021-10-9 16:51 编辑
无限压缩基本不可能实现,以下仅提供一种思路,未验证! 压缩实际是对数据进行映射,例如将 aaaaaaaaaa 映射到 10a 那么可以减少一部分空间! 但是实际上到最后是没办法进行映射了的,因为要表示所有可能必须要做到 1 对 1 映射 那么现在要无限压缩则 需要消除一部分需要映射的数量了 举例说明: 一个由 【a-z】组成的N位长度的字符串共有 26的N次方个状态 这时候我想做到无限压缩,必然需要将其中一部分状态舍弃,例如 32位的二进制原来有4294967295个状态 我假设舍弃一半 就只剩下 2147483647个状态了 可以映射到31位的二进制中去了! 但是为了表示32位的所有可能我必须要把被舍弃的状态通过某个方案转换为 没有被舍弃的状态! 如何转换?我目前想到的方案是对称加密,对称加密也可以看作是 通过某个函数 实现状态的 1 对 1 映射 即,如果本次压缩的数据是被舍弃的状态,那么对称加密一次,如果加密结果还是被舍弃的,继续加密!! 直到加密后的状态是未被舍弃的状态即可(此处需要记录总共的加密次数)解压时再加密这么多次即可!!! 如此就可以实现不限次数的压缩 但是实际情况貌似很难实现,问题还是在于需要记录加密次数!假设 数据以二进制表示! 要把1024位长度的二进制 压缩到1023位 的同时需要有数据来记录压缩次数!!!! 压缩次数转为二进制还不止 1位 当然可以把 1024位直接映射到1000位 但是这时候损失的状态太多了,需要加密很多次才能转为 未被舍弃的状态!这时候可能压缩次数的二进制数又大于24位了 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 综上~ 。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。 多想了下 明显不可行! |
随着宽带和存储越来越发达 可以不用考虑压缩了 |
不错 想的不错 |
嗨 明知不可能实现的 东西 但是就是想尝试 因为这种东西的吸引力太强了 |
那绝对引发新的科技**,也就比可控核聚变的现实意义稍小了一些,在数学哲学意义上的话甚至更高。 |
如果可以实现无限压缩到某一个长度比如1KB,那我穷举1KB内的所有二进制数是否能够解压缩出理论上所有的数据呢,我觉得不可能,而且所有的程序不可能映射到某一个固定的长度里,那么既然长度不可控,那跟基本的压缩算法也就一样了 |
这玩意儿不是光想就能想出来的,这背后数学基础一般本科生都不会 |
技术贴,mark |
32位可压缩为31位加1位的编码 实际还是32位 |
就跟md5还原出原数据一样,逆天操作了。宇宙中突显一块低熵区~ |