2011-04-27 16 views
13

हर बार मुझे ऐसा करने की ज़रूरत है, मैं एक अलग तरीके से "आविष्कार" करता हूं। मानकीकृत करने का समय। मुझे संदेह है कि कुछ डिफ़ॉल्ट आदेश है जो मैंने ऐसा करने के लिए तैयार नहीं किया है, इसलिए यदि प्रश्न बहुत छोटा है तो मुझे पहले से खेद है।जेनरेटिंग संयोजन

क्या बेहतर (स्मृति, प्रदर्शन) जिस तरह से प्राप्त करने के लिए है:

combinations[{1,2,3},2] = {{1,2},{1,3},{2,3}} 
इनपुट सूची में मनमाने ढंग से तत्व, निश्चित रूप से साथ

+0

यदि आप "सबसेट" खोजना चाहते हैं तो केवल मामूली है। यदि आप, काफी हद तक, केवल "संयोजन" खोजना चाहते हैं, तो, आपने यह पूछकर सभी भविष्य के लोगों के लिए एक महान सेवा की है! – dreeves

+0

@dreeves आपको बहुत बहुत धन्यवाद! अब, यदि आप _really_ मुझे दोष देना चाहते हैं, तो कोड की तीसरी पंक्ति देखें ** मैंने ** यहां लिखा है http://stackoverflow.com/questions/3815496/plotting-linear-inequalities-in-mathematica/3868677#3868677 –

+0

मुझे सहायता केंद्र में दो कदम उठाए गए: संयोजन => टुपल्स => सब्सट्रेट्स (निश्चित रूप से मैं इसे पहले से जानता था, इसलिए इससे मदद मिली हो सकती है) –

उत्तर

17
Subsets[{1, 2, 3}, {2}] 

अंतर्निहित तरीका है।

+0

अरे, मुझे पता था कि यह बहुत छोटा था :)। धन्यवाद! –

+0

सीए, प्रबुद्ध बैज पर बधाई! –

7

Subsets को कोर फ़ंक्शन के रूप में जोड़ा गया था, कॉम्बिनेटोरिका फ़ंक्शन KSubsets उपलब्ध था।

Needs["Combinatorica`"] 

KSubsets[{1, 2, 3}, 2] 

(* {{1, 2}, {1, 3}, {2, 3}} *) 

Combinatorica अभी भी अतिरिक्त सुविधा प्रदान करता है, इस तरह के रूप में NextKSubset:

NextKSubset[{1, 2, 3}, {1, 3}] 

(* {2, 3} *) 

यह पिछले समारोह स्मृति प्रबंधन के लिए बहुत उपयोगी हो सकता है।

+0

आपको 4000 मिल गया! बधाई ... अब 4010 –

+0

@belisarius धन्यवाद। : डी –

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