这样能实现用 圆周率 来 压缩文件 吗?

2017-09-22 09:06:56 +08:00
 ZUYI

FPGA 能实现这样的功能吗? 三排二进制存储位,第一、第二排做 与非 运算,得到第三排。第三排相当于并联的电阻,1 电阻小,0 电阻大,加电压后,能测试出电流的大小。1 多则电流大,0 多则电流小。 第一排放 1G 的压缩过的文件( 1 与 0 差不多一样多),圆周率从第二排排队经过,第三排产生比照数据。第三排的传感器达到一定阀值,则记录圆周率的位置。将这个位置的值放在第三排数据前,然后压缩并存入第一排。重复以上过程,直到获得极短的数据。

7198 次点击
所在节点    分享创造
49 条回复
churchmice
2017-09-22 09:13:41 +08:00
可以实现,但是你这玩意要找到 1G 匹配的圆周率数据考虑过花多少时间吗?而且理论上存在这个解吗?我一直以为这压缩算法是来搞笑的
ZUYI
2017-09-22 09:15:54 +08:00
@churchmice 并不是完全匹配呀。仔细看,只要是达到一定 阀值 就可以。比如说,90%。
churchmice
2017-09-22 09:22:06 +08:00
@ZUYI 仔细一想,不现实,硬件里面你要计算 1G 比特的 A 是不是等于 1G 比特的 B,需要花费的时间很大,我怎么估计都需要 0.1 秒了,然后你这个还要迭代,就算你迭代个 1G 次吧,自己算算需要花费多少时间
churchmice
2017-09-22 09:24:13 +08:00
@ZUYI 而且 90%匹配比 100%匹配硬件上的开销提升的不是一点半点,你要加一堆 mux 一堆比较强,这时钟频率就更上不去了
ZUYI
2017-09-22 09:26:55 +08:00
@churchmice 不是等于,不是等于,不是等于。。。是相似,是相似,是相似。。。另外,%90 的 100 次方就是很大的压缩比例了,用不了迭代 1G 次呀?
nutting
2017-09-22 09:28:58 +08:00
看不懂,抛开硬件详细说说算法,有啥优点
roychan
2017-09-22 09:29:24 +08:00
nutting
2017-09-22 09:31:03 +08:00
0123456789,这串和圆周率运算,得到什么?怎么实现压缩
ZUYI
2017-09-22 09:32:19 +08:00
为啥“ 90%匹配比 100%匹配硬件上的开销提升的不是一点半点”呀?我是要通过第三排的 电阻 来进行 比较,按理说 开销 应该一样呀?
whileFalse
2017-09-22 09:33:34 +08:00
容易证明,设有字典 D ( n ),任意长度为 n 的串都可以在其中找到。则最好情况下,串的起始位置 K ( n )的平均长度是 n,即压缩无意义。
churchmice
2017-09-22 09:36:01 +08:00
@ZUYI
1 )你产生 100bit 的随机数,去圆周率里面匹配匹配看究竟需要多少次?按你说的 90%的相似度再去计算下
2 )硬件上 10 比特里面有 9bit 相似怎么做?很简单啊,每一个比特相加看看结果是不是 9,但是这样会用到 10 个进位加法器。如果是 1G 比特呢?要实现 90%相似度检测需要 0.9G 个加法器,这一方面是巨大的硬件开销,一方面会导致时钟频率很低很低很低,几乎不可行。当然会有一些算法可以稍微优化下,但是数量级不会改变。不要说什么电流相加这种方法,最后转化到数字电路里面还是 0/1 的操作,电流你能无限相加吗?加到后来是不是都能电死恐龙了“
churchmice
2017-09-22 09:37:19 +08:00
@nutting 「圆周率(Pi)压缩法」就是一个例子,常被用来开压缩算法的玩笑 —— 但不止是玩笑而已,理论上确实管用。方法是你把想要的压缩文件二进制化,然后在二进制化的 Pi 序列里找这段数据。由于 Pi 是无限不循环小数,所以任何你所选择的二进制数据最终都会在 Pi 里被找。这是个疯狂的但是尚未被彻底推翻的理论上可行的算法。但是如果我们只是要对单个文件进行压缩,而不是多个,这个方法一定管用。

于是你只需要标记 Pi 的起始位置和你文件的大小,压缩过程就愉快地完成了。这可以把任意的文件压缩到非常小的地步,而且可能会用掉你海量的时间来找到对应的二进制串,完全是拼人品的算法。

不过,理论上,如果你人品不够,找到的数据位于非常遥远的地方,那用这逗比算法得到的压缩包也可能会非常大。但是最近有一些逗比孩子对此还发表了论文,指出你可能得到比你要压缩的数据还大的压缩包。github 上就有一个这样的玩意儿叫 PIFS(Pi 文件系统),这个开源项目声称不管怎么说,100% 的压缩率在数学上是不可能的。
BOYPT
2017-09-22 09:39:29 +08:00
从信息熵角度直接就知道不可能的。
nutting
2017-09-22 09:47:32 +08:00
哦,哈哈,真是逗比的想法啊
lovestudykid
2017-09-22 09:48:14 +08:00
感觉像在造永动机
twilight
2017-09-22 09:54:48 +08:00
楼主,那个字应该是“阈” , 阈值,不是阀值。

=======================================
继空穴来风含义颠倒之后,阀值是否会取代阈值?

阀值是不是更贴近群众,更好理解----到了这个值,阀门就开了或关上
sennes
2017-09-22 09:56:50 +08:00
因为是涉及硬件的 所以我其实从你发的 /t/390354 这一篇开始就有在想了
不过 这么多天过去了 我还是不太理解你说的「第三排相当于并联的电阻」到底是什么意思。
churchmice
2017-09-22 10:04:03 +08:00
@sennes 电阻并联,电流相加,我猜是这个意思
根据最终电流的大小判断到底匹配了几个
Xs0ul
2017-09-22 10:16:14 +08:00
建议看看信息论
shuax
2017-09-22 10:22:36 +08:00
我要保存“ 123 ”,在 pi 的第“ 1926 ”位,长度为“ 3 ”,仅仅是“ 1926 ”已经比我要保存的东西大了。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/392719

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX