2012-02-01 20 views
9

मैं जैसे मैं जिस तरह से इस समस्या को overthinking कर रहा हूँ लगता है, लेकिन यहाँ वैसे भी जाता है ...अपेक्षित संख्या

मैं अपनी आंतरिक सरणी में एम स्लॉट के साथ एक हैश तालिका है। मुझे हैश टेबल में एन तत्वों को सम्मिलित करने की आवश्यकता है। मान लीजिए कि मेरे पास हैश फ़ंक्शन है जो यादृच्छिक रूप से प्रत्येक स्लॉट के लिए समान संभावना के साथ एक स्लॉट में तत्व डालता है, हैश टकराव की कुल संख्या का अनुमानित मूल्य क्या है?

(क्षमा करें कि यह प्रोग्रामिंग प्रश्न से अधिक गणित प्रश्न है)।

संपादित करें: यहां कुछ कोड है जो मुझे पायथन का उपयोग करके अनुकरण करना है। मुझे संख्यात्मक उत्तर मिल रहे हैं, लेकिन इसे एक सूत्र में सामान्यीकृत करने और इसे समझाते हुए परेशानी हो रही है।

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 
+0

आप "ट्रिपलेट" टकराव को कैसे मापना चाहते हैं? – wildplasser

+0

जो भी मुझे लगता है सबसे ज्यादा समझ में आता है। तो मैं इसे दो टकराव के रूप में गिनने के साथ जाऊंगा (पहले के बाद जोड़ा गया एक नया तत्व) – numegil

+0

सबसे अच्छा उपाय सभी वस्तुओं को पुनर्प्राप्त करने के लिए काम की मात्रा प्रतीत होता है, जो 'SUM (x * (x + 1)/2) 'एक्स के साथ बाल्टी में वस्तुओं की संख्या है, और राशि सभी बाल्टीओं पर है। किसी स्रोत को संदर्भित करने के लिए – wildplasser

उत्तर

19

आपको यहां जवाब मिलेगा: Quora.comमीटर बाल्टी और n आवेषण के लिए टकराव की अपेक्षित संख्या

n - m * (1 - ((m-1)/m)^n) है।

+1

+1। – lumberjack4

+1

[मैथ स्टैक एक्सचेंज] (http://math.stackexchange.com/questions/35791/birthday-problem-expected-number-of-collisions) पर इसका सबूत भी है। – ShreevatsaR

+0

उत्तर में सबूत शामिल होना चाहिए। – MVTC

0

SUM(x*(x+1)/2) मीट्रिक के लिए सूत्र here पाया जा सकता है, और उम्मीद मूल्य(n/2m)* (n+2m -1) प्रतीत होता है।

भिन्नता, IANAM के बारे में पता नहीं है।

संबंधित मुद्दे