आसान 0 हल किए गए 0% स्वीकृति

Matrix Multiplication

Multiply two matrices, the operation behind every layer of a neural network.

आप क्या सीखेंगे

  • Multiply matrices row by column
  • Check that shapes are compatible
  • See why layers are matrix products

समस्या

अनुवाद दिखाएँ

Neural network layers, attention and most of machine learning boil down to matrix multiplication. For an n × k matrix A and a k × m matrix B, the product C = A × B is n × m, where each entry is the dot product of a row of A and a column of B:

C[i][j] = A[i][0] × B[0][j] + A[i][1] × B[1][j] + … + A[i][k-1] × B[k-1][j]

Implement matmul(a, b).

Input

a: An n × k matrix.

b: A k × m matrix (its number of rows equals the number of columns of a).

Output

Return the n × m product matrix.

सीमाएँ

1 ≤ n, k, m ≤ 50

-100 ≤ each value ≤ 100

उदाहरण

उदाहरण 1
इनपुट:
a = [
    [1.0, 2.0],
    [3.0, 4.0]
]
b = [
    [5.0, 6.0],
    [7.0, 8.0]
]

अपेक्षित आउटपुट:
expected = [
    [19.0, 22.0],
    [43.0, 50.0]
]
इनपुट:
std::vector<std::vector<double>> a = {
    {1.0, 2.0},
    {3.0, 4.0}
};
std::vector<std::vector<double>> b = {
    {5.0, 6.0},
    {7.0, 8.0}
};

अपेक्षित आउटपुट:
std::vector<std::vector<double>> expected = {
    {19.0, 22.0},
    {43.0, 50.0}
};
इनपुट:
double[][] a = new double[][] {
    new double[] {1.0, 2.0},
    new double[] {3.0, 4.0}
};
double[][] b = new double[][] {
    new double[] {5.0, 6.0},
    new double[] {7.0, 8.0}
};

अपेक्षित आउटपुट:
double[][] expected = new double[][] {
    new double[] {19.0, 22.0},
    new double[] {43.0, 50.0}
};

व्याख्या

C[0][0] = 1×5 + 2×7 = 19, C[0][1] = 1×6 + 2×8 = 22, C[1][0] = 3×5 + 4×7 = 43 and C[1][1] = 3×6 + 4×8 = 50.

उदाहरण 2
इनपुट:
a = [
    [1.0, 0.0, 2.0]
]
b = [
    [3.0],
    [4.0],
    [5.0]
]

अपेक्षित आउटपुट:
expected = [
    [13.0]
]
इनपुट:
std::vector<std::vector<double>> a = {
    {1.0, 0.0, 2.0}
};
std::vector<std::vector<double>> b = {
    {3.0},
    {4.0},
    {5.0}
};

अपेक्षित आउटपुट:
std::vector<std::vector<double>> expected = {
    {13.0}
};
इनपुट:
double[][] a = new double[][] {
    new double[] {1.0, 0.0, 2.0}
};
double[][] b = new double[][] {
    new double[] {3.0},
    new double[] {4.0},
    new double[] {5.0}
};

अपेक्षित आउटपुट:
double[][] expected = new double[][] {
    new double[] {13.0}
};

व्याख्या

A 1 × 3 matrix times a 3 × 1 matrix gives a 1 × 1 matrix: 1×3 + 0×4 + 2×5 = 13.

संदर्भ

यह चुनौती CodeUtility के लिए अनुकूलित की गई है। ऊपर दिए गए स्टेटमेंट और सीमाओं का पालन करें।

दूसरों से सीखें

समुदाय समाधान

अभी तक कोई प्रकाशित समाधान नहीं। पहला साझा करने के लिए इस चुनौती को हल करें।