V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ZUYI
V2EX  ›  程序员

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

  •  
  •   ZUYI · 2017-09-08 22:16:34 +08:00 · 1774 次点击
    这是一个创建于 2631 天前的主题,其中的信息可能已经有所发展或是发生改变。
    4 条回复    2017-09-23 00:15:35 +08:00
    billlee
        1
    billlee  
       2017-09-08 22:32:27 +08:00
    直接遍历计数是 O(n), 已经不可能再快了吧
    ZUYI
        2
    ZUYI  
    OP
       2017-09-13 13:13:21 +08:00
    有没有这样的硬件,三排二进制存储位,第一、第二排做 与非 运算,得到第三排。第三排相当于并联的电阻,1 电阻小,0 电阻大,加电压后,能测试出电流的大小。1 多则电流大,0 多则电流小。
    这种硬件可以用来进行量子信息校对。
    ZUYI
        3
    ZUYI  
    OP
       2017-09-22 09:16:50 +08:00
    @billlee FPGA 能实现这样的功能吗? 三排二进制存储位,第一、第二排做 与非 运算,得到第三排。第三排相当于并联的电阻,1 电阻小,0 电阻大,加电压后,能测试出电流的大小。1 多则电流大,0 多则电流小。 第一排放 1G 的压缩过的文件( 1 与 0 差不多一样多),圆周率从第二排排队经过,第三排产生比照数据。第三排的传感器达到一定阀值,则记录圆周率的位置。将这个位置的值放在第三排数据前,然后压缩并存入第一排。重复以上过程,直到获得极短的数据。
    billlee
        4
    billlee  
       2017-09-23 00:15:35 +08:00
    @ZUYI #3 放 1GB 文件就根本不可能,没有芯片能放下这么多锁存器,也不可能做那么多并行的与非门。Xeon CPU 的三级缓存一共也才几十 MB. 所以你这电路还是要一位位地计算,还是 O(n), 和通用 CPU 相比也就是可能降低了常数因子。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2769 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 13:39 · PVG 21:39 · LAX 05:39 · JFK 08:39
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.