用英文哈希网页有多少位?

时间:2012-10-11 01:19:48

标签: algorithm hash

最近我提出了一个问题,问题是,有多少位足以用这些假设来散列网页:

  1. 有10亿个网页
  2. 网页的平均长度为300字
  3. 我们有250,000个英文单词
  4. 页面采用ASCII
  5. 显然这个问题没有一个正确答案,但问题的目的是看一般方法是如何运作的。

1 个答案:

答案 0 :(得分:2)

您还没有定义“哈希网页”的含义;该短语出现在这个问题和互联网上的其他几个页面中。在其他页面中,它用于表示计算校验和(例如使用sha1sum)以验证内容是否完整。如果这就是你的意思,那么你需要任何页面的所有位被“哈希”;平均而言,即300 * 8 *平均英文单词长度。问题没有指定平均英文单词长度,但如果是五个字母加一个空格,则每页的平均位数为6 * 300 * 8或14400。

如果您改为将所有网页的所有单词放入索引结构中以允许搜索查找包含任何给定单词集的所有网页,则一个答案大约为10 ^ 13位:有300亿字十亿页的参考文献;如果引用是天真存储的,则每个引用使用log_2(1G)位,或大约30位;因此9万亿比特,或大约10 ^ 13。您还可以计算出十亿个URL的天真存储至少比该数量小一个数量级,即最多10 ^ 12位。可以使用特殊方法将参考存储减少几个数量级,但由于URL更容易压缩或保存紧凑(通过例如trie),参考存储可能仍然远远超过存储URL所需的内容