c - Finding or arranging all combinations of given numbers -
इस सवाल का पहले से ही एक उत्तर है: < / P>
- 9 जवाब
मुझे आशा है कि आप जो भी कर रहे हैं महान। मेरे पास एक दिलचस्प सवाल है, जो मुझे फंस गया है इसके बारे में सटीक क्रम में संयोजन उत्पन्न करना। उदाहरण के लिए मेरे पास 4 वेरिएबल्स (भिन्न हो सकते हैं) और इन 4 वेरिएबल्स में इस मामले में उदाहरण के लिए कुछ सीमाएं बढ़ाना है। इसलिए मैं एक ऑर्डर में 2d मैट्रिक्स उत्पन्न करना चाहता हूं:
< कोड> 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 1 1 1 0 0 1 0 1 0 1 0 0 1 0 1 1 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 1 1 1 1 1 1 1 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 2 2 1 0 0 2 0 1 0 ...... ...... और इसी तरह।
चर की संख्या (इस मामले में 4) भिन्न हो सकती है और अधिकतम सीमा भी (इस मामले में 4) भिन्न हो सकती है। यहां तक कि मुझे भी सभी संभव संयोजन मिलते हैं लेकिन मैं उन्हें इस अनुक्रम में व्यवस्थित करने में सक्षम नहीं हूं। यह महान होगा अगर कोई जवाब दे। चीयर्स!
मुझे लगता है कि आपको n चर मिलेंगे , जिनमें से प्रत्येक को 0 से बी -1 के बीच सीमा की अनुमति है आप जो चाहते हैं, बस आधार संख्या में एन-अंकों की संख्या की गणना कर रहा है। उदाहरण के लिए, यदि n = 2 और b = 3 , तो आप जो क्रम बनाना चाहते हैं वह है
00 01 02 10 11 12 20 21 22
इसे लागू करने के लिए, निम्न की तरह एक लूप लिखें: ( चेतावनी : untested code)
def इंक (वी, बी): श्रेणी में मैं (लेन (वी)) के लिए: वी [आई] = वी [i] + 1 अगर वी [i] & lt; B: break v [i] = 0 def is_zero (v): श्रेणी के लिए मैं (लेनन (वी)) में: अगर v [i]! = 0: return false return true v = [0, 0, 0] b = 3 जबकि सच: प्रिंट (वी) इंक (वी, बी) यदि है_जरो (वी): तोड़
यदि आप यह कैसे काम करता है पर सावधानी से देखते हैं, तो आपको यह देखना चाहिए कि यह कैसे सामान्य करें यदि आपका चर की ऊपरी सीमा अलग है।
Comments
Post a Comment