हमें एक क्यूब दिया गया है जिसे क्यूब [लंबाई] [चौड़ाई] [ऊंचाई] के रूप में 3-डी सरणी का उपयोग करके बनाया जा सकता है। कार्य न्यूनतम योग पथ की गणना करना है जो घन को पार करके प्राप्त किया जाएगा और इसलिए परिणाम प्रिंट करें।
आइए इसके लिए विभिन्न इनपुट आउटपुट परिदृश्य देखें -
में - इंट क्यूब [लंबाई] [चौड़ाई] [ऊंचाई] ={ { {2, 4, 1}, {3, 4, 5}, {9, 8, 7}}, { {5, 3, 2}, { 7, 6, 5}, {8, 7, 6}}, { {3, 2, 1}, {4, 3, 2}, {5, 4, 3}}}
बाहर - 3-डी सरणी में न्यूनतम योग पथ हैं:15
स्पष्टीकरण - हमें एक घन दिया गया है जिसकी लंबाई, चौड़ाई और ऊंचाई है। अब, हम 3-डी सरणी में न्यूनतम योग पथ की गणना करेंगे। तो, यह 2 + 4 + 1 + 3 + 5 यानी 15 से शुरू होगा।
में - इंट क्यूब [लंबाई] [चौड़ाई] [ऊंचाई] ={ { {1, 2}, {7, 8}}, { {3, 5}, {9, 16}}}
बाहर − 3-डी सरणी में न्यूनतम योग पथ हैं:24
स्पष्टीकरण - हमें एक घन दिया गया है जिसकी लंबाई, चौड़ाई और ऊंचाई है। अब, हम 3-डी सरणी में न्यूनतम योग पथ की गणना करेंगे। तो, यह 1 + 2 + 5 + 16 यानी 24 से शुरू होगा।
नीचे दिए गए प्रोग्राम में इस्तेमाल किया गया तरीका इस प्रकार है
-
पूर्णांक प्रकार मानों के साथ घन बनाने के लिए 3-डी सरणी इनपुट करें। फ़ंक्शन में डेटा को न्यूनतम_सबपाथ (क्यूब) के रूप में पास करें।
-
फंक्शन के अंदर मिनिमम_सबपाथ(क्यूब)
-
क्यूब के समान आकार की एक सरणी बनाएं और एआर [0] [0] [0] को क्यूब [0] [0] [0] में शुरू करें।पी>
-
एक क्यूब की लंबाई तक i से 1 तक के लिए लूप प्रारंभ करें और arr[i][0][0] से arr[i-1][0][0] + cube[i][0][0] सेट करें।पी>
-
एक घन की चौड़ाई तक j से 1 तक के लिए लूप प्रारंभ करें और arr[0][j][0] से arr[0][j-1][0] + cube[0][j][0]सेट करें पी>
-
एक घन की ऊंचाई तक k से 1 तक के लिए लूप प्रारंभ करें और arr[0][0][k] से arr[0][0][k-1] + cube[0][0][k]सेट करें पी>
-
एक क्यूब की लंबाई तक i से 1 तक के लिए लूप प्रारंभ करें और एक सरणी की चौड़ाई तक j से 1 तक के लिए एक और लूप प्रारंभ करें और min_val को न्यूनतम (arr [i-1] [j] [0], arr [i] पर सेट करें। j-1][0], INT_MAX) और arr[i][j][0] to min_val + cube[i][j][0]
-
एक घन की लंबाई तक i से 1 तक के लिए लूप प्रारंभ करें और k से 1 तक एक सरणी की ऊंचाई तक एक और लूप प्रारंभ करें और min_val को न्यूनतम (arr [i-1] [0] [k], arr [i] पर सेट करें। 0][k-1], INT_MAX) और arr[i][0][k] =min_val + cube[i][0][k]
-
एक क्यूब की ऊंचाई तक k से 1 तक के लिए लूप प्रारंभ करें और एक सरणी की चौड़ाई तक j से 1 तक के लिए एक और लूप शुरू करें और min_val को न्यूनतम (arr [0] [j] [k-1], arr [0] पर सेट करें। j-1][k], INT_MAX) और arr[0][j][k] =min_val + cube[0][j][k]
-
एक घन की लंबाई तक i से 1 तक के लिए लूप प्रारंभ करें और एक सरणी की चौड़ाई तक j से 1 तक के लिए दूसरा लूप प्रारंभ करें और k से 1 तक क्यूब की ऊंचाई तक दूसरा लूप प्रारंभ करें और min_val को न्यूनतम (arr [i-1) पर सेट करें ][j][k], arr[i][j-1][k], arr[i][j][k-1]) और arr[i][j][k] =min_val + cube[ i][j][k]
-
वापसी गिरफ्तारी[लंबाई-1][चौड़ाई-1][ऊंचाई-1]
-
-
फ़ंक्शन के अंदर न्यूनतम (int a, int b, int c)
-
जाँच करें कि IF, b से कम और c से कम है, तो a वापस करें।
-
वरना, वापसी ग
-
वरना IF, b c से कम है तो b
-
वरना, वापसी ग
-
उदाहरण
#include<bits/stdc++.h> using namespace std; #define length 3 #define breadth 3 #define height 3 int Minimum(int a, int b, int c){ if(a < b){ if(a < c){ return a; } else{ return c; } } else if(b < c){ return b; } else{ return c; } } int Minimum_SubPath(int cube[][breadth][height]){ int i, j, k; int arr[length][breadth][height]; arr[0][0][0] = cube[0][0][0]; for(i = 1; i < length; i++){ arr[i][0][0] = arr[i-1][0][0] + cube[i][0][0]; } for(j = 1; j < breadth; j++){ arr[0][j][0] = arr[0][j-1][0] + cube[0][j][0]; } for(k = 1; k < height; k++){ arr[0][0][k] = arr[0][0][k-1] + cube[0][0][k]; } for(i = 1; i < length; i++){ for(j = 1; j < breadth; j++){ int min_val = Minimum(arr[i-1][j][0], arr[i][j-1][0], INT_MAX); arr[i][j][0] = min_val + cube[i][j][0]; } } for(i = 1; i < length; i++){ for(k = 1; k < height; k++){ int min_val = Minimum(arr[i-1][0][k], arr[i][0][k-1], INT_MAX); arr[i][0][k] = min_val + cube[i][0][k]; } } for(k = 1; k < height; k++){ for(j = 1; j < breadth; j++){ int min_val = Minimum(arr[0][j][k-1], arr[0][j-1][k], INT_MAX); arr[0][j][k] = min_val + cube[0][j][k]; } } for(i = 1; i < length; i++){ for(j = 1; j < breadth; j++){ for(k = 1; k < height; k++){ int min_val = Minimum(arr[i-1][j][k], arr[i][j-1][k], arr[i][j][k-1]); arr[i][j][k] = min_val + cube[i][j][k]; } } } return arr[length-1][breadth-1][height-1]; } int main(){ int cube[length][breadth][height] = { { {2, 4, 1}, {3, 4, 5}, {9, 8, 7}}, { {5, 3, 2}, {7, 6, 5}, {8, 7, 6}}, { {3, 2, 1}, {4, 3, 2}, {5, 4, 3}}}; cout<<"Minimum Sum Path In 3-D Array are: "<<Minimum_SubPath(cube); return 0; }
आउटपुट
यदि हम उपरोक्त कोड चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
Minimum Sum Path In 3-D Array are: 15