2011-11-29 7 views
8

किसी सूची के विभाजन से, मेरा मतलब है सूची तत्वों के सबसेट्स का एक सेट, जैसे कि सबसेट की किसी भी विशिष्ट जोड़ी का चौराहे खाली है, और सभी सबसेट का संघ मूल सूची के बराबर है।मैथमैटिका में सूची के सभी विभाजन कैसे प्राप्त कर सकता हूं?

उदाहरण के लिए, अगर मेरे इनपुट सूची {1,π,x} तो मैं एक समारोह है कि रिटर्न

{ {{1},{π},{x}}, {{1,π},{x}}, {{1,x},{π}}, {{1},{x,π}}, {{1,π,x}} } 
+0

@yoda: ओपी शब्दावली के साथ भ्रमित हो सकता है। ये विभाजन नहीं हैं, मैं सहमत हूं। – Blender

+0

@ ब्लेंडर हाँ, मुझे अभी एहसास हुआ कि वह कुछ और हो रहा है। – abcd

+1

@ ब्लेंडर, योडा: ये [सेट की भावना में विभाजन] हैं (http://en.wikipedia.org/wiki/Partition_of_a_set), सिर्फ गणित कमांड [विभाजन] के अर्थ में नहीं (http: // संदर्भ .wolfram.com/mathematica/रेफरी/Partition.html)। – Simon

उत्तर

12

http://mathforum.org/advanced/robertd/bell.html

BellList[1] = {{{1}}}; 
BellList[n_Integer?Positive] := Join @@ 
    (ReplaceList[#, 
    {{b___, {S__}, a___} :> {b, {S, n}, a}, 
    {S__} :> {S, {n}}} 
    ] & /@ BellList[n - 1]) 

s = {a, b, c, d, e}; 

bell = [email protected]@s /. n_Integer :> s[[n]] 

से कोड अनुकूलित का उपयोग कर या, आश्चर्य, Combinatorica पैकेज इस समारोह (SetPartitions) पहले से ही है!

Needs["Combinatorica`"] 

comb = SetPartitions[{a, b, c, d, e}] 

जाँच लें कि वे दोनों एक ही परिणाम (लेकिन विभिन्न क्रम में) लौट

Complement[bell, comb] == {} 
[email protected] == [email protected] 
(* Both of the above return True *) 
+0

@ श्री विज़ार्ड, जो मानसिक रूप से पार्स करने के लिए मुझे थोड़ी देर ले जा रहा है, लेकिन जहां तक ​​मैं कह सकता हूं कि यह काम करता है, धन्यवाद! – Michael

+0

@ माइकल, मैं मानक पुस्तकालयों में इस समारोह की जांच करना भूल गया। मैंने जो अपडेट अभी बनाया है उसे देखें। –

+0

@ सिमॉन, संपादन के लिए धन्यवाद। –

2

मैं सेट के एक Powerset साथ शुरू होगा चाहते हैं (Subsets[x] का उपयोग) और फिर उन्हें फ़िल्टर करते हैं जहां Union[x] सेट का मूल सेट नहीं है।

थोड़ा धीमा, लेकिन मुझे यह सहज ज्ञान मिलता है।

+0

'{{1, x}, {π}} का संघ मूल सेट नहीं है; हालांकि ओपी ने इसके लिए पूछा। –

+3

@ बिलीओनेल आप क्यों कहते हैं कि संघ {1, x} और {π} {1, π, x} के बराबर नहीं है? एक सेट के तत्वों का क्रम सेट की परिभाषा से कोई फर्क नहीं पड़ता ... – Michael

+0

@ ब्लेंडर: मैं सही खड़ा हूं। :) –

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

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