मैं क्या करना चाहता हूं n सेट के साथ सौदा है, जबकि नीचे दिया गया कोड बिल्कुल 4 सेट के साथ काम करता है।आकार वाई की सरणी को देखते हुए, आकार एन के सरणी युक्त, मैं रूबी का उपयोग करके सभी तार्किक संयोजन कैसे वापस कर सकता हूं?
def show_combinations
@combos = []
['A', 'no A'].each do |a|
['B', 'no B'].each do |b|
['C', 'no C'].each do |c|
['D', 'no D'].each do |d|
@combos << [a, b, c, d]
end
end
end
end
end
मैं कैसे इस परिदृश्य से निपटने के लिए इस निम्नलिखित कोड refactor कर सकते हैं: को देखते हुए मैं आकार आकार n के एरे युक्त y की एक सरणी है, मैं सभी संयोजनों वापस जाने के लिए चाहते हैं। यह ध्यान रखना महत्वपूर्ण है कि प्रत्येक उप सरणी में केवल एक आइटम परिणाम में हो सकता है। (जैसे "पूर्ण प्रोफाइल" भी "नहीं पूरा प्रोफ़ाइल" के साथ परिणाम में नहीं कर सकते हैं)
पृष्ठभूमि:
एक उपयोगकर्ता कुछ कार्य हो सकता है: उदाहरण के लिए, "पूरा प्रोफ़ाइल" या "के लिए सेट अप ईमेल "या जो भी हो। उन कार्यों को इस तरह दर्शाया जा सकता है:
@task_states = [["Completed Profile, NOT Completed Profile"], ["Set up Email", "NOT set up Email"]]
फिर, विधि में @task_states गुजर, परिणाम यह होना चाहिए:
[
["Completed Profile", "Set up Email"],
["Completed Profile", "NOT set up Email"],
["NOT Completed Profile", "Set up Email"],
["NOT Completed Profile", "NOT Set up Email"]
]
तो सभी संयोजनों का प्रतिनिधित्व सरणियों की एक सरणी। स्पष्ट रूप से "पूर्ण प्रोफ़ाइल" एक ही सरणी में "पूर्ण प्रोफ़ाइल नहीं," आदि के रूप में भी नहीं हो सकता है।
धन्यवाद!
[ऐरे # संयोजन] (http://ruby-doc.org/core-2.4.1/Array.html#method-i-combination) या [ऐरे # repeated_combination] (http: // ruby-doc। संगठन/कोर-2.4.1/Array.html # विधि-i-repeated_combination) कोई अच्छा है? –
क्या आपका मतलब एरे के कार्टेशियन उत्पाद है? –