Número esperado de colisões de hash

Sinto que estou pensando demais neste problema, mas aqui vai mesmo assim ...

Tenho uma tabela de hash com slots M em sua matriz interna. Eu preciso inserir N elementos na tabela de hash. Supondo que eu tenha uma função hash que insira aleatoriamente um elemento am em um slot com probabilidade igual para cada slot, qual é o valor esperado do número total de colisões de hash?

(Desculpe, isso é mais uma questão de matemática do que uma questão de programação

Edit: Aqui está um código que eu tenho que simular usando Python. Estou recebendo respostas numéricas, mas estou tendo problemas para generalizá-la para uma fórmula e explicá-la.

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

questionAnswers(4)

yourAnswerToTheQuestion