首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >预期的哈希冲突数

预期的哈希冲突数
EN

Stack Overflow用户
提问于 2012-02-02 06:44:30
回答 2查看 18.2K关注 0票数 13

我觉得我对这个问题想得太多了,但不管怎样……

我有一个哈希表,它的内部数组中有M个槽。我需要在哈希表中插入N个元素。假设我有一个散列函数,它以相等的概率将am元素随机插入到一个插槽中,那么散列冲突总数的期望值是多少?

(抱歉,这更像是一个数学问题,而不是编程问题)。

编辑:下面是我用Python模拟它的一些代码。我正在得到数字答案,但在将其概括为公式并解释它时遇到了困难。

代码语言:javascript
复制
import random
import pdb

N = 5
M = 8

NUM_ITER = 100000

def get_collisions(table):
    col = 0
    for item in table:
        if item > 1:
            col += (item-1)
    return col

def run():
    table = [0 for x in range(M)]

    for i in range(N):
        table[int(random.random() * M)] += 1

    #print table
    return get_collisions(table)

# Main

total = 0
for i in range(NUM_ITER):
    total += run()

print float(total)/NUM_ITER
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-07-06 20:16:17

你可以在这里找到答案:Quora.comm存储桶和n插入的预期冲突数为

n - m * (1 - ((m-1)/m)^n)

票数 24
EN

Stack Overflow用户

发布于 2012-02-02 06:58:44

SUM(x*(x+1)/2)指标的公式可以找到here,并且期望值看起来是(n/2m)* (n+2m -1)

不知道方差,IANAM。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9104504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档