मुझे एक दिलचस्प एल्गोरिदमिक समस्या मिली। हमें एक बाइनरी पेड़ दिया जाता है जिसमें पत्तियों के अलावा प्रत्येक चरम पर मूल्य 0 होता है। पत्तियों में हम दो विकल्प हैं:बाइनरी पेड़ में संतुलित रकम
मूल्य अज्ञात है, लेकिन हम जानते हैं कि यह एक प्राकृतिक संख्या> = 1
मूल्य में जाना जाता है और यह एक प्राकृतिक संख्या> = 1
समस्या यह तय करना है कि पत्तियों में हर अज्ञात मान को सेट करना संभव है जैसे कि किसी दिए गए पेड़ के प्रत्येक उप-भाग में बाएं और दाएं उपट्री में वर्टेक्स में समान मान होते हैं।
उदाहरण के लिए:
Tree1:
0
/\
0 ?
/\
0 5
/\
? ?
जवाब है नहीं - विचार है कि हर प्रश्न चिह्न एक प्राकृतिक संख्या हो गया है को ध्यान में रखकर, यह निश्चित रूप से संभव नहीं
पेड़ 2:
0
/ \
0 0
/\ /\
0 10 ? ?
/\
5 ?
उत्तर हाँ है - हम प्रत्येक प्रश्न चिह्न में क्रमश: 5, 10, 10 सेट करते हैं।
अभी तक, मैं केवल एक स्पष्ट एल्गोरिदम के साथ आया - हम रैखिक समीकरणों की प्रणाली बनाते हैं और जांचते हैं कि क्या प्राकृतिक संख्या में इसका समाधान है या नहीं। लेकिन मुझे लगता है कि यह बड़े पेड़ों के लिए बहुत धीमा हो सकता है और इसे हल करने का एक बेहतर तरीका होना चाहिए। क्या कोई मदद कर सकता है? मैं आपका बहुत आभारी रहूंगा।
तुम हमेशा एक codeblock में पेड़ आकर्षित करने के लिए कोशिश कर सकते हैं: | – Alexander
समीकरणों की एक बड़ी प्रणाली न बनाएं, लेकिन छोटे बनाएं, उन्हें हल करें, फिर परिणाम भरें और अगले उपप्रोबल के लिए खोजें। –