如何快速判定一个二进制大文件中包含的 1 多还是 0 多?

2017-09-08 22:16:34 +08:00
 ZUYI
1630 次点击
所在节点    程序员
4 条回复
billlee
2017-09-08 22:32:27 +08:00
直接遍历计数是 O(n), 已经不可能再快了吧
ZUYI
2017-09-13 13:13:21 +08:00
有没有这样的硬件,三排二进制存储位,第一、第二排做 与非 运算,得到第三排。第三排相当于并联的电阻,1 电阻小,0 电阻大,加电压后,能测试出电流的大小。1 多则电流大,0 多则电流小。
这种硬件可以用来进行量子信息校对。
ZUYI
2017-09-22 09:16:50 +08:00
@billlee FPGA 能实现这样的功能吗? 三排二进制存储位,第一、第二排做 与非 运算,得到第三排。第三排相当于并联的电阻,1 电阻小,0 电阻大,加电压后,能测试出电流的大小。1 多则电流大,0 多则电流小。 第一排放 1G 的压缩过的文件( 1 与 0 差不多一样多),圆周率从第二排排队经过,第三排产生比照数据。第三排的传感器达到一定阀值,则记录圆周率的位置。将这个位置的值放在第三排数据前,然后压缩并存入第一排。重复以上过程,直到获得极短的数据。
billlee
2017-09-23 00:15:35 +08:00
@ZUYI #3 放 1GB 文件就根本不可能,没有芯片能放下这么多锁存器,也不可能做那么多并行的与非门。Xeon CPU 的三级缓存一共也才几十 MB. 所以你这电路还是要一位位地计算,还是 O(n), 和通用 CPU 相比也就是可能降低了常数因子。

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

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

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

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

© 2021 V2EX