मैं हाल ही में इस प्रश्न पर आया हूं: "आपको एक बूलियन अभिव्यक्ति दी गई है जिसमें 'सत्य', 'असत्य', 'और', 'या' और 'xor' प्रतीकों का एक स्ट्रिंग शामिल है। कोष्ठक बनाने के तरीकों की संख्या गिनाएं। अभिव्यक्ति ऐसी है कि यह सत्य का मूल्यांकन करेगा। उदाहरण के लिए, 'सत्य और असत्य xor सत्य' को संक्षिप्त करने के दो तरीके हैं, जैसे कि यह सत्य का मूल्यांकन करता है। "
मुझे पता था कि यह एक गतिशील प्रोग्रामिंग समस्या है, इसलिए मैंने अपने दम पर एक समाधान के साथ आने की कोशिश की जो इस प्रकार है। मान लीजिए कि हमारे पास एबीसी .... डी कहाँ 'के रूप में एक अभिव्यक्ति है।' किसी भी ऑपरेशन का प्रतिनिधित्व करता है और, या, एक्सोर और कैपिटल अक्षर सही या गलत का प्रतिनिधित्व करते हैं। आइए हम कहते हैं कि आकार के K की इस अभिव्यक्ति के लिए सही तरीके से उत्पादन करने की संख्या N है। जब एक नया बूलियन मान E इस अभिव्यक्ति में जोड़ा जाता है तो इस नई अभिव्यक्ति को छोटा करने के 2 तरीके हैं 1. ((ABC .... D) .ई) यानी। एबीसी के सभी संभव कोष्ठक के साथ .... डी हम अंत में ई जोड़ते हैं। 2. (ABC (DE)) यानी। पहले DE का मूल्यांकन करें और फिर उन तरीकों की संख्या ज्ञात करें, जिनके आकार K की अभिव्यक्ति सही हो सकती है।
मान लीजिए कि T [K] उन तरीकों की संख्या है जिनके आकार K के साथ अभिव्यक्ति सही है तो T [k] = val1 + val2 + val3 जहां val1, val2, val3 की गणना निम्नानुसार की जाती है।
1) जब E को D के साथ समूहीकृत किया जाता है।
i) यह D का मान नहीं बदलता है
ii) यह D के मान को उलट देता है
पहले मामले में val1 = T [K] = N। (जैसा कि यह प्रारंभिक ABC ... D व्यंजक को कम करता है)। दूसरे मामले में डी के मूल्य के साथ डीपी [के] का पुनर्मूल्यांकन करें और यह वैल 1 है।
2) जब ई पूरी अभिव्यक्ति के साथ समूहीकृत होता है।
// val2 में 'सही' की संख्या शामिल है, E ऐसे भावों के साथ उत्पन्न होगा, जो ABC के सभी कोष्ठक उदाहरणों के बीच 'सत्य' दिया गया है ...... D i) यदि सत्य है। = = सत्य है तो val2 = N
ii) यदि सत्य है। ई = गलत है तो वैल 2 = 0
// val3 में 'सही' की संख्या शामिल है, E ऐसे भावों के साथ उत्पन्न होगा, जिन्होंने ABC के सभी कोष्ठक उदाहरणों में 'असत्य' दिया था ...... D
iii) यदि गलत है। ई = सही है तो वैल 3 = (2 ^ (के -2) - एन) = एम। K के आकार के साथ अभिव्यक्ति की संख्या झूठी [2 ^ (K-2) पैदा करती है, आकार K की अभिव्यक्ति को छोटा करने के तरीकों की संख्या]
iv) यदि गलत है। ई = गलत है तो वैल 3 = 0
यह मूल विचार है जो मेरे मन में था, लेकिन जब मैंने इसके समाधान के लिए जाँच की http://people.csail.mit.edu/bdean/6.046/dp/dp_9.swf तो वहाँ का दृष्टिकोण बिल्कुल अलग था। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं और मैं डीपी को हल करने में कैसे बेहतर हो सकता हूं ताकि मैं खुद के ऊपर दिए गए समाधानों के साथ आ सकूं।
अग्रिम में धन्यवाद।
true and (false xor true) = (true and false) xor true
(आसानी से दोनों को कम करके देखा जाता हैfalse xor true
)।