【问题标题】:Given a set of N values that are all 0 or X, except for one Y, what is the most efficient way to find X?给定一组 N 个值,除一个 Y 外,所有值都是 0 或 X,找到 X 的最有效方法是什么?
【发布时间】:2012-07-11 18:45:09
【问题描述】:

基本上,我有一组冗余数据,其中一个(奖励点:一个或多个)值可能有错误。一些值也可能是 0,这意味着忽略/无效。返回“好”值的最有效方法是什么?

愚蠢的解决方案是一个 for 循环,它遍历集合并在两次找到相同的非零值时返回。但我觉得可能有一些逻辑/位黑客表达会更好。

【问题讨论】:

  • 您的数据是如何存储的?列表中有多少比例是零?你有目标平台/语言吗?
  • 还有一个类似的问题:stackoverflow.com/questions/1332527/…
  • 我实际上是把它作为硬件来实现的,所以我想我会尽可能地理论化。但如果你知道的话,我正在使用 Verilog :)。不假设零的数量。

标签: redundancy error-correction


【解决方案1】:

“哑”解决方案可能是最好的解决方案,尤其是在数据集中没有很多零的情况下。在大多数情况下,您会很早就退出循环。

在有很多零的情况下,如果您的硬件能够快速扫描非零条目,则可以优化您的速度。我想在 FPGA 硬件上搜索非零非常容易,但我自己没有这方面的个人经验。

【讨论】:

    猜你喜欢
    • 2012-10-09
    • 1970-01-01
    • 2017-05-10
    • 2023-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-19
    • 1970-01-01
    相关资源
    最近更新 更多