有什么好办法可以把一本书的国际标准书号搞得一塌糊涂呢?
抱歉,让我澄清一下,我想把1000号书的国际标准书号散列一下。但阵列可能会增长。它是一个哈希表而不是加密。编程语言是c语言,但这是一个普遍的问题。我想知道行业中使用的ISBN的标准散列方法或您的建议。
最佳答案
我怀疑ISBNs有一个行业标准的散列函数。行业标准与978前缀和其他前缀有关,也与isbn如何分配给不同的发行商有关。在我自己的基于ISBN的应用程序中,我使用了一个用于字符串的bog标准散列函数。我没有利用ISBN仅限于十进制数字(或者在校验位的情况下,十进制或X)的事实,而是继续对校验位进行散列,即使它是多余的。散列一个10或13位的字符串是如此之快,以至于做一些特殊情况的事情实际上可能会减慢速度。
C程序员常用的散列函数包括Jenkins散列函数;还有Hsieh、Torek、SuperFastHash和murdurhash。我肯定还有其他的,你可以找。您还可以在http://www.cse.yorku.ca/~oz/hash.html找到一个收藏。
关于c - 哈希一本书的ISBN,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2941346/