सभी विभाजन 2 चरणों में पाए जा सकते हैं।
पहला: P
से एन, P_S={P_i1, P_i2, ..., P_ip}
का नया आदेश दिया गया विभाजन, जैसा कि मैं समान हूं।
P = {1, 1, 1, 1, 2, 2, 5}
P_S = (4, 4, 5)
विभाजन P_S
के संबंध में C
की {C_i1, C_i2, ..., C_ip}
करें। नोट, C_ix
मल्टी-सेट है जैसे C
। यह सी विभाजन को अंतिम विभाजन के आकार से बहु-सेट में विभाजित कर रहा है।
दूसरा: प्रत्येक {C_i1, C_i2, ..., C_ip}
के लिए और t
(P
में ix's
की संख्या) में C_ix
के विभाजन के प्रत्येक ix, x={1,2,...,p}
खोजने नंबर के लिए ix
तत्वों के साथ सेट। इस नंबर को N(C_ix,ix,t)
पर कॉल करें।
विभाजन की कुल संख्या है:
sum by all {C_i1, C_i2, ..., C_ip} (product N(C_ix,ix,t) ix={1,2,...,p})
पहला भाग रिकर्सिवली काफी सरल किया जा सकता है। दूसरा अधिक जटिल है। M
में भागों के बहु-सेट तत्वों के विभाजन M
के तत्वों के साथ सभी आंशिक रूप से क्रमबद्ध सूची को ढूंढने जैसा ही है। आंशिक रूप से आदेश सूची प्रकार का है:
a_1_1, a_1_2, ..., a_1_k, a_2_1, a_2_2, ..., a_2_k, ....
कहाँ a_i_x <= a_i_y
अगर x < y
और (a_x_1, a_x_2, ..., a_x_k) lexicographic <= (a_y_1, a_y_2, ..., a_y_k)
अगर x < y
। इन 2 स्थितियों के साथ N(C_ix,ix,t)
से सभी विभाजन को दोबारा बनाना संभव है।
कुछ मामलों के लिए N(C_ix,ix,t)
की गणना करना आसान है। बहु-सेट C_ix
में विभिन्न तत्वों की संख्या के रूप में |C_ix|
को परिभाषित करें।
if t = 1 than 1
if |C_ix| = 1 than 1
if |C_ix| = 2 than (let m=minimal number of occurrences of elements in C_ix) floor(m/2) + 1
in general if |C_ix| = 2 than partition of m in numbers <= t.
सवाल यह है कि कितने? या आपको उन्हें खोजने की ज़रूरत है? –
आपका समाधान क्या है? – Ishtar
मेरे समाधान को अपघटनों की सूची की आवश्यकता है। मैं सिर्फ उन्हें गिनना चाहता हूं। मैं सी के सभी क्रमपरिवर्तन उत्पन्न करता हूं, फिर सभी अपघटनों को एक तालिका में संग्रहीत करता है और विशिष्ट लोगों को गिनता हूं। – PhilippeC