1000 यादृच्छिक इनट जोड़ने के दौरान आप बाइनरी खोज पेड़ की औसत ऊंचाई की गणना कैसे करते हैं? औसत ऊंचाई क्या है?एक बाइनरी खोज पेड़ की औसत ऊंचाई
उत्तर
आप एक द्विआधारी पेड़ की ऊंचाई की गणना इस पुनरावर्ती परिभाषा का उपयोग कर सकते हैं:
height(empty) = 0
height(tree) = 1 + max(height(tree.left), height(tree.right))
एक तरीका यह अनुभव बार-बार एक खाली पेड़ बनाने के लिए किया गया है इस तरह के एक पेड़ की औसत ऊंचाई मापने और 1000 यादृच्छिक आइटम जोड़ने के लिए यह। उपरोक्त फ़ंक्शन का उपयोग करके प्रत्येक परीक्षण की ऊंचाई को मापें, और उन्हें औसत करें।
मुझे लगता है अपने कार्य को शायद एक द्विआधारी पेड़ की औसत ऊंचाई के लिए एक सूत्र मिल रहा है।
ऊंचाई (खाली) -1 नहीं होना चाहिए, और केवल एक आइटम के साथ पेड़ की ऊंचाई शून्य होनी चाहिए? – Pacerier
@ पर्सियर: यदि आप चाहें तो ऊंचाई को परिभाषित कर सकते हैं, लेकिन मुझे लगता है कि खाली पेड़ की ऊंचाई को शून्य के रूप में परिभाषित करना अधिक स्वाभाविक है। –
यह जोड़े गए क्रम पर निर्भर करता है। यदि आप सबसे छोटे मूल्य से शुरू करते हैं तो पेड़ गहरा होगा क्योंकि सभी नए मूल्य सही बच्चे बीएसटी में जोड़े जाएंगे। यदि आप पहले सबसे बड़ा मूल्य जोड़ते हैं तो बाएं बच्चे को खाली होने पर गहरा बच्चा गहरा होगा।
यह (जैसे एक लाल-काले वृक्ष के रूप में) आप संतुलित वृक्ष संरचना किसी भी प्रकार का उपयोग कर रहे हैं, इस पर निर्भर करता है। चूंकि आप बाइनरी पेड़ में यादृच्छिक संख्याएं डाल रहे हैं, इसलिए यह अपेक्षा करना उचित होगा कि औसत गहराई लगभग लॉग 2 (1000) है - इसलिए मान 10 और 11 'सामान्य' होंगे। मुझे यकीन नहीं है कि इससे कितना दूर विचलन हो सकता है; 10 स्तरों से अधिक नहीं, संभवतः कुछ हद तक गहराई से। बिना संतुलन वाला एक चरम मामला 1000 गहरा होगा; यादृच्छिक संख्या के साथ होने की संभावना नहीं है।
। यह सच है कि संख्याओं के क्रम के आधार पर वास्तविक ऊंचाई भिन्न हो सकती है, लेकिन यादृच्छिक रूप से वितरित संख्याओं को मानते हुए, जो आप उल्लेख करते हैं, तो वास्तविक मूल्य, अपेक्षाकृत अधिक अनुमानित मूल्य अनुमानित करेगा (जो, एक बार फिर, लॉग 2 है (1000))
यह गलत है। संतुलित होने के लिए एक बाइनरी पेड़ के लिए, औसत तत्व पहले जोड़ा नोड होना चाहिए। इस अवसर के साथ शुरू होने के लिए केवल 1/एन मौका होगा, और इसके बाद भी किसी भी तरफ उप-पेड़ों को संतुलित करने की आवश्यकता होगी। वास्तव में बहुत कम संभावना है कि यह संभावना से लॉग 2 (1000) होगा, 1/1000 का एक छोटा सा अंश। –
औसत ऊंचाई ओ (लॉग_2 (1000)) होगी - वास्तविक संख्या 4.3 एलएन (1000) - 1.9 एलएन (एलएन (एन)) - 3. http://goo.gl/cZMZoY – wcochran
यह प्रश्न वास्तव में मुश्किल है। जवाब 1000 नहीं होगा, क्योंकि यह असंभव है, लेकिन लॉग 2 (1000) भी असंभव है, लेकिन पेड़ उगने के तरीके के आधार पर भी और भी अधिक है।
आप कदम हालांकि पेड़ तो भोलेपन से यह जोड़कर पेड़ लगभग हमेशा log2 (1000) से अधिक लंबी हो जाएगा द्वारा किसी पूर्णांक जोड़ें।
एक सांख्यिकीविद से बात करें, क्योंकि यह सामान्य संभावना वितरण से संबंधित प्रतीत होता है। वे बहुत सी यादृच्छिक यादृच्छिक घटनाओं (सिर एक इकाई दाएं, बाएं पूंछ के बाएं) द्वारा उत्पन्न होते हैं, और एक यादृच्छिक पूर्णांक का मूल्य पेड़ के माध्यम से फिर से शुरू होता है क्योंकि यह एक पत्ते में निकलता है।
यह सवाल है कि क्या आप मुझे निश्चित यह वास्तव में पेड़ पैदा करने के बिना काम कर सकते हैं पूछ मिला है।
मैं एक आवेदन जो यदि आप एक भोलेपन से लागू किया द्विआधारी पेड़ से एन अद्वितीय संख्या के हर संभव क्रमचय जोड़ा औसत ऊंचाई होगा क्या करने के लिए उत्तर की गणना कर सकता है लिखने में कामयाब रहे।
मुझे जो जवाब मिले हैं वे इस आलेख में हैं। (X- अक्ष पेड़ में आइटमों की संख्या, नीली रेखा औसत ऊंचाई है, और लाल रेखा इष्टतम संभव ऊंचाई है)
N Average Height 2 2 16 7.039 32 9.280 64 11.679 256 16.783 343 17.896
Granitebolshevik सही है: यह संभव है लेकिन सांख्यिकीय रूप से असंभव है कि एक संतुलित लागू वृक्ष अतिरिक्त संतुलन कार्यक्षमता के बिना इष्टतम ऊंचाई होगी।
एल्गोरिथ्म हे की एक जटिलता (एन^2) है, और यह काफी तेजी से वास्तव में बड़ी संख्या की गणना करने के लिए नहीं है।
अच्छा काम है। क्या आपने एन = 1000 को प्राप्त मूल्यों से किसी भी तरह का एक्सट्रापोलेशन करने की कोशिश की है? एच = 14 (लगभग एन = 120) पर आधारित क्रूड रैखिक एक्सट्रापोलेशन और एच = 18 (एन = 350 पर) एच = 2 (~ 560/230 * 4 + 1) एन = 1000 पर सुझाव देता है। वक्र उस से चापलूसी है; यह 25-27 की सीमा के करीब होने की संभावना है, ऐसा लगता है। –
4.311 * एलएन (एन) - 1.953 एलएन (एलएन (एन)) + सी फिट लगभग सी के साथ काफी अच्छी तरह से फिट बैठता है। Http://goo.gl/cZMZoY से फॉर्मूला। – wcochran
हालांकि सांख्यिक अनुमानों के एक नंबर, उदा .:
Devroye, ल्यूक देखते हैं इस सवाल का एक सरल जवाब होने के लिए वहाँ प्रकट नहीं होता है,। "द्विआधारी खोज पेड़ों की ऊंचाई पर एक नोट।" एसीएम जर्नल (जेएसीएम) 33.3 (1 9 86): 48 9-498।
रीड, ब्रूस। "एक यादृच्छिक बाइनरी खोज पेड़ की ऊंचाई।" एसीएम जर्नल (जेएसीएम) 50.3 (2003): 306-332।
http://staff.ustc.edu.cn/~csli/graduate/algorithms/book6/chap13.htm
इन अनुमानों आम तौर पर रूप ले: A ln n - B ln ln n + C
कहाँ A~4.311
और B~1.953
तो शायद कहने के लिए सबसे अधिक उपयोगी बात यह है कि यादृच्छिक सम्मिलन के लिए औसत ऊंचाई O(log n)
है, लेकिन अगर आपको वास्तव में संख्यात्मक अनुमान की आवश्यकता है तो मुझे लगता है कि (4.311 ln n - 1.953 ln ln n)
बड़े एन के लिए पर्याप्त होगा। जो काफी अच्छी तरह से कहीं और सूचना प्रयोगात्मक परिणामों से फिट बैठता है -
n=1000
के लिए, कि 26
के बारे में देता है।
इसके ऊपर @ एंड्रू-चरवाहे के बाद सी लगता है कि सी लगभग 3 है। – wcochran
- 1. बाइनरी खोज पेड़ क्यों?
- 2. द्विआधारी खोज बनाम बाइनरी खोज पेड़
- 3. जावास्क्रिप्ट बाइनरी खोज पेड़ कार्यान्वयन
- 4. एक संतुलित बाइनरी खोज पेड़ का निर्माण
- 5. पूर्णांक की स्ट्रीम से एक संतुलित बाइनरी खोज पेड़ बनाएं
- 6. बाइनरी ट्री ऊंचाई
- 7. बाइनरी खोज पेड़ में डुप्लिकेट प्रविष्टियों को खोजने की रणनीति
- 8. बाइनरी खोज पेड़ के साथ हैश की तुलना करें
- 9. गैर-बाइनरी पेड़ में एक नोड के लिए रिकर्सिव खोज
- 10. बाइनरी पेड़ ट्रैवर्सल की जटिलताओं
- 11. एवीएल पेड़ पर बाइनरी सर्च पेड़
- 12. बनाना द्विआधारी खोज पेड़
- 13. बाइनरी पेड़ कैसे बनाएं
- 14. तेजी की खोज यादृच्छिक पेड़
- 15. एक क्रमबद्ध सरणी की बाइनरी खोज
- 16. एन-नोड बाइनरी सर्च पेड़ की ऊंचाई पर एक एसिम्प्टोटिक ऊपरी बाउंड दें जिसमें नोड की औसत गहराई Θ (एलजी एन)
- 17. सामान्य पेड़ से बाइनरी पेड़
- 18. द्विआधारी खोज पेड़
- 19. बाइनरी खोज पेड़ में "आंतरिक नोड" क्या है?
- 20. हास्केल: फ्लैट बाइनरी पेड़
- 21. सी # बाइनरी पेड़ और शब्दकोश
- 22. बाइनरी पेड़ क्यों महत्वपूर्ण हैं?
- 23. ओकैमल: बाइनरी पेड़ खींचें
- 24. बाइनरी पेड़ में सबसे कम आम पूर्वज
- 25. एक बाइनरी पेड़ का लंबवत योग
- 26. बाइनरी पेड़ में एक लूप पाएं
- 27. टेक्स्ट फ़ाइल की बाइनरी खोज कैसे करें
- 28. मैं बाइनरी खोज पेड़ पर इस ऑपरेशन को कैसे साबित कर सकता हूं?
- 29. शाखा रहित बाइनरी खोज
- 30. बाइनरी खोज सी ++ एसटीएल
यह वास्तव में एक दिलचस्प समस्या है - इससे मुझे आश्चर्य होता है कि इसके लिए कोई सूत्र है या नहीं। निर्णायक कारकों में से एक होगा अगर पूर्णांक को मिलान करने की अनुमति है। यदि हां, तो चींटियों की सीमा क्या है (उनमें मिलान की संभावना)। यह एक प्रभावशाली कारक हो सकता है। –
उत्तर आप जिस बाइनरी पेड़ का उपयोग कर रहे हैं उस पर निर्भर करता है, हालांकि एल्गोरिदम उत्तर की गणना करने के लिए, एक विशिष्ट पेड़ उदाहरण दिया गया है, वही है। – Eddie
संदर्भ, होमवर्क क्या है? 'यादृच्छिक int' से आपका क्या मतलब है? – starblue