मुझे क्रमशः 1
से N
से संख्याओं के सभी संभावित सेट प्रोग्राम करने की आवश्यकता है, बिना किसी क्रमिकता के पूर्णांक संख्या m
।सी ++ में इस फॉर-लूप गड़बड़ी से कैसे बचें?
के बाद से मैं नहीं जानता कि यह कैसे समझाने के लिए बेहतर यहाँ कुछ उदाहरण हैं:
के लिएm = 3
vector<vector<int>> box;
int N = 5;
for(int i = 1; i <= N; i++) {
for(int j = N; j >= i; j--) {
for(int k = N; k >= j; k--) {
vector<int> dummy;
dummy.push_back(i);
dummy.push_back(j);
dummy.push_back(k);
box.push_back(dummy);
}
}
}
यह पूरी तरह से ठीक काम करता है के लिए m = 2
vector<vector<int>> box;
int N = 5;
for(int i = 1; i <= N; i++) {
for(int j = N; j >= i; j--) {
vector<int> dummy;
dummy.push_back(i);
dummy.push_back(j);
box.push_back(dummy);
}
}
और परिणाम है क्या चाहिए मुझे। लेकिन जैसा कि पहले से ही उल्लेख किया गया है, m
मनमाने ढंग से हो सकता है और मुझे इसे m = 37
या कभी भी लागू करने के लिए परेशान नहीं किया जा सकता है। N
और m
ज्ञात मूल्य हैं लेकिन प्रोग्राम चल रहा है, जबकि परिवर्तन। 37-फॉर-लूप की एक पंक्ति को लागू करने के लिए m = 37
मामले के लिए इसे लागू करने का एक बेहतर तरीका होना चाहिए। क्या कोई मेरी मदत कर सकता है? मैं दयालु हूं: \
संपादित करें: बेहतर तरीके से व्याख्या करने के लिए जो मैं यहां देख रहा हूं, कुछ और उदाहरण हैं।
के N = 5
और m = 4
कहते हैं, की तुलना में 1223
मेरे लिए एक उपयुक्त समाधान नहीं है चलो, 124
के बाद से यह कम करने के लिए है नहीं है। आइए मान लें कि मुझे पहले से ही 1223
एक समाधान के रूप में मिला है, मुझे 2123
, 2213
या इस नंबर के किसी अन्य क्रमपरिवर्तन की आवश्यकता नहीं है।
संपादित 2: या यदि आप यहां एक और दृश्य (गणितीय?) समस्या फॉर्मूलेशन पसंद करते हैं तो आप जाते हैं।
आयाम m
आयाम पर विचार करें। m
2 के साथ आप N
आकार मैट्रिक्स के साथ छोड़े गए हैं। मैं विकर्ण सहित इस मैट्रिक्स के ऊपरी (या निचले) त्रिकोण की तलाश में हूं। आइए m = 3
पर जाएं, मैट्रिक्स एक 3 आयामी घन (या यदि आप चाहें तो टेंसर) बन जाता है, अब मैं ऊपरी (या निचले) टेट्राहेड्रॉन को विकर्ण-सादा समेत देख रहा हूं। 3 से अधिक आयामों के लिए मैं अति-विकर्ण-विमान सहित हाइपर-क्यूब के हाइपर-टेट्रैड्रॉन की तलाश में हूं।
वहाँ कुछ समय पहले ही सवाल था, हो सकता है मैं इसे मिल जाएगा .... – user463035818
इस http के लिए बेहतर अनुकूल है: //codereview.stackexchange। कॉम/ – OMGtechy
[के लिए रिकर्सन] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/33424700/recursion-of-fors) – user463035818