Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: मल्टी-डाइमेंशनल ऐरे का उपयोग करके दो मैट्रिक्स को गुणा करना


इस लेख में, हम समझेंगे कि मल्टी-डाइमेंशनल ऐरे का उपयोग करके दो मैट्रिक्स को कैसे गुणा किया जाता है। मैट्रिक्स में इसके एलिमेंट्स की पंक्ति और स्तंभ व्यवस्था होती है। m पंक्तियों और n स्तंभों वाले मैट्रिक्स को m × n मैट्रिक्स कहा जा सकता है।

मैट्रिक्स में व्यक्तिगत प्रविष्टियों को एलिमेंट कहा जाता है और इसे a[i][j] द्वारा दर्शाया जा सकता है जो बताता है कि एलिमेंट a, iवीं पंक्ति और jवें स्तंभ में मौजूद है।

उदाहरण

मान लीजिए हमारा इनपुट है:

First matrix: 2 3 4 5 2 3 4 6 9 Second matrix: 1 5 3 5 6 3 8 1 5

वांछित आउटपुट होगा:

The product of two matrices is: 49 32 35 39 40 36 106 65 75

एल्गोरिदम

चरण 1 - शुरू करें
चरण 2 - तीन इंटीजर मैट्रिक्स घोषित करें: input_matrix_1, input_matrix_2 और resultant_matrix
चरण 3 - मान परिभाषित करें
चरण 4 - फॉर-लूप का उपयोग करके दोनों मैट्रिक्स के प्रत्येक एलिमेंट पर पुनरावृति करें, पहले मैट्रिक्स के [i][j] पोजीशन पर एलिमेंट को दूसरे मैट्रिक्स की पंक्ति के प्रत्येक एलिमेंट से गुणा करें और मान जोड़ें, मान को resultant मैट्रिक्स के [i][j] पोजीशन पर स्टोर करें। इसे पहले मैट्रिक्स के प्रत्येक एलिमेंट के लिए दोहराएं
चरण 5 - परिणाम प्रदर्शित करें
चरण 6 - रुकें

उदाहरण 1: मेन फंक्शन में सभी ऑपरेशन

यहां, हम सभी ऑपरेशन्स को 'main' फंक्शन के अंतर्गत बांधते हैं।

public class MultiplyMatrices { 
    public static void main(String[] args) { 
        int matrix_size = 3; 
        int[][] input_matrix_1 = { 
            {2, 3, 4}, 
            {5, 2, 3}, 
            {4, 6, 9} 
        }; 
        System.out.println("पहला मैट्रिक्स परिभाषित है: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix_1[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        int[][] input_matrix_2 = { 
            {1, 5, 3}, 
            {5, 6, 3}, 
            {8, 1, 5} 
        }; 
        System.out.println("दूसरा मैट्रिक्स परिभाषित है: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix_2[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        int[][] resultant_matrix = new int[matrix_size][matrix_size]; 
        for(int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                for (int k = 0; k < matrix_size; k++) { 
                    resultant_matrix[i][j] += input_matrix_1[i][k] * input_matrix_2[k][j]; 
                } 
            } 
        } 
        System.out.println("\n दो मैट्रिक्स का गुणनफल है: "); 
        for(int[] row : resultant_matrix) { 
            for (int column : row) { 
                System.out.print(column + " "); 
            } 
            System.out.println(); 
        } 
    } 
}

आउटपुट

पहला मैट्रिक्स परिभाषित है: 2 3 4 5 2 3 4 6 9
दूसरा मैट्रिक्स परिभाषित है: 1 5 3 5 6 3 8 1 5
दो मैट्रिक्स का गुणनफल है: 49 32 35 39 40 36 106 65 75

उदाहरण 2: ऑब्जेक्ट-ओरिएंटेड दृष्टिकोण

यहां, हम ऑपरेशन्स को फंक्शन्स में एनकैप्सुलेट करते हैं जो ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को दर्शाता है।

public class MultiplyMatrices { 
    static int matrix_size = 3; 
    static void multiply(int input_matrix_1[][], int input_matrix_2[][]){ 
        int[][] resultant_matrix = new int[matrix_size][matrix_size]; 
        for(int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                for (int k = 0; k < matrix_size; k++) { 
                    resultant_matrix[i][j] += input_matrix_1[i][k] * input_matrix_2[k][j]; 
                } 
            } 
        } 
        System.out.println("\n दो मैट्रिक्स का गुणनफल है: "); 
        for(int[] row : resultant_matrix) { 
            for (int column : row) { 
                System.out.print(column + " "); 
            } 
            System.out.println(); 
        } 
    } 
    public static void main(String[] args) { 
        int matrix_size = 3; 
        int[][] input_matrix_1 = { 
            {2, 3, 4}, 
            {5, 2, 3}, 
            {4, 6, 9} 
        }; 
        System.out.println("पहला मैट्रिक्स परिभाषित है: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix_1[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        int[][] input_matrix_2 = { {1, 5, 3}, 
            {5, 6, 3}, 
            {8, 1, 5} 
        }; 
        System.out.println("दूसरा मैट्रिक्स परिभाषित है: "); 
        for (int i = 0; i < matrix_size; i++) { 
            for (int j = 0; j < matrix_size; j++) { 
                System.out.print(input_matrix_2[i][j] + " "); 
            } 
            System.out.println(); 
        } 
        multiply(input_matrix_1, input_matrix_2); 
    } 
}

आउटपुट

पहला मैट्रिक्स परिभाषित है: 2 3 4 5 2 3 4 6 9
दूसरा मैट्रिक्स परिभाषित है: 1 5 3 5 6 3 8 1 5
दो मैट्रिक्स का गुणनफल है: 49 32 35 39 40 36 106 65 75

  1. - जावा प्रोग्राम: मैट्रिक्स को Z फॉर्म में प्रिंट करना

    उदाहरणimport java.lang.*; import java.io.*; public class Demo { public static void z_shape(int my_arr[][], int n) { int i = 0, j, k; // पहली पंक्ति प्रिंट करें for (j = 0; j < n - 1; j++) { System.out.print(my_arr[i][j] + ); } // विकर

  1. - जावा में स्प्लिट फंक्शन का उपयोग करके मैट्रिक्स में स्ट्रिंग खोजना

    उदाहरण= 2 || myValue.length == 0) { return 1; } else if (myValue.length == 1 && input.length() != myValue[0].length()) { return 1; } } return 0; } public static String[] verticalSearch(String[] myMatrix) {

  1. - क्या Java मल्टी-डायमेंशनल ऐरे सपोर्ट करता है?

    नहीं, Java पारंपरिक अर्थों में (C/C++ की तरह सन्निहित मेमोरी ब्लॉक के रूप में) मल्टी-डायमेंशनल ऐरे सपोर्ट नहीं करता। Java ऐरे के ऐरे (arrays of arrays) सपोर्ट करता है। Java में, एक टू-डायमेंशनल ऐरे वास्तव में वन-डायमेंशनल ऐरे का ऐरे होता है। उदाहरण int[][] arr = new int[2][4]; अभिव्यक्ति arr[