2

这是一个 PLC 程序,因此值可以在不知情的情况下更改。有人能想到一个哈希算法来检查自上一个周期以来是否有 5 到 10 个整数发生变化。我需要这个尽可能快。

4

1 回答 1

2

为什么不对照前一组值的副本检查它们呢?

简单地检查所有 10 个的努力是线性的、小而恒定的。哈希函数不太可能更快(您无法避免读取值,这几乎是进行比较所需的所有工作),即使是这样,拥有相同的哈希码也不会告诉您值没有改变,所以有时你仍然需要比较所有 10 个。

如果偶尔得到错误的答案是可以的,您可以对哈希码的所有十个值(假设是大小适中的二进制整数)进行异或运算,然后进行检查。这将避免读取旧/新值,将读取计数减少一半。鉴于 PLC 正在做的所有其他工作,我怀疑这种节省是否不是纳米级的。

于 2011-09-16T20:12:38.587 回答