Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
这是一个 PLC 程序,因此值可以在不知情的情况下更改。有人能想到一个哈希算法来检查自上一个周期以来是否有 5 到 10 个整数发生变化。我需要这个尽可能快。
为什么不对照前一组值的副本检查它们呢?
简单地检查所有 10 个的努力是线性的、小而恒定的。哈希函数不太可能更快(您无法避免读取值,这几乎是进行比较所需的所有工作),即使是这样,拥有相同的哈希码也不会告诉您值没有改变,所以有时你仍然需要比较所有 10 个。
如果偶尔得到错误的答案是可以的,您可以对哈希码的所有十个值(假设是大小适中的二进制整数)进行异或运算,然后进行检查。这将避免读取旧/新值,将读取计数减少一半。鉴于 PLC 正在做的所有其他工作,我怀疑这种节省是否不是纳米级的。