
Вопрос задан 04.07.2023 в 20:22.
Предмет Информатика.
Спрашивает Юрьев Георгий.
(Написать код на C#) Разработать процедуру и/или функцию, реализующую операцию матричного умножения.


Ответы на вопрос

Отвечает Колтунова Валерия.
Код:
- using System;
- using System.Linq;
- namespace Mtrx
- {
- static class Program
- {
- static void Main(string[] args)
- {
- var matrix1 = new double[][]
- {
- new [] {1.0, 2},
- new [] {3.0, 4}
- };
- var matrix2 = new double[][]
- {
- new [] {1.0, 2},
- new [] {3.0, 4}
- };
- var A = MMult(matrix1, matrix2);
- if (!A.Success)
- {
- Console.WriteLine(A.Error);
- return;
- }
- Print2DMatrix(A.Data);
- }
- private static Result<double[][]> MMult(double[][] A, double[][] B) {
- if (A[0].Length != B.Length)
- return Result<double[][]>.GetError("It's imposable to multiply this matrix because of their dimensions");
- var result = A.Select(
- (row, rowIndex) =>
- B[0].Select((_, columnIndex) => B.Select(__ => __[columnIndex])
- .Zip(row, (rowCell, columnCell) => rowCell * columnCell).Sum()
- ).ToArray()
- ).ToArray();
- return Result<double[][]>.GetResult(result);
- }
- private static void Print2DMatrix<T>(T[][] matrix)
- {
- for (var i = 0; i < matrix.Length; ++i)
- {
- for (var j = 0; j < matrix[i].Length; ++j)
- {
- Console.Write(matrix[j][i]);
- Console.Write(" ");
- }
- Console.WriteLine();
- }
- }
- }
- internal class Result<T>
- {
- public T Data { get; }
- public string Error { get; }
- public bool Success => Error is null;
- public static Result<T> GetError(string error)
- {
- return new Result<T>(default, error);
- }
- public static Result<T> GetResult(T result)
- {
- return new Result<T>(result);
- }
- private Result(T data, string error = null)
- {
- Data = data;
- Error = error;
- }
- }
- }



Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.
Конечно! Вот пример кода на C#, реализующий операцию матричного умножения:
csharpusing System;
class MatrixMultiplication
{
static void Main(string[] args)
{
int[,] matrixA = {
{ 1, 2, 3 },
{ 4, 5, 6 },
{ 7, 8, 9 }
};
int[,] matrixB = {
{ 9, 8, 7 },
{ 6, 5, 4 },
{ 3, 2, 1 }
};
int[,] resultMatrix = MultiplyMatrices(matrixA, matrixB);
Console.WriteLine("Matrix A:");
PrintMatrix(matrixA);
Console.WriteLine("Matrix B:");
PrintMatrix(matrixB);
Console.WriteLine("Result Matrix:");
PrintMatrix(resultMatrix);
}
static int[,] MultiplyMatrices(int[,] matrixA, int[,] matrixB)
{
int rowsA = matrixA.GetLength(0);
int colsA = matrixA.GetLength(1);
int rowsB = matrixB.GetLength(0);
int colsB = matrixB.GetLength(1);
if (colsA != rowsB)
{
throw new ArgumentException("Number of columns in Matrix A must be equal to number of rows in Matrix B.");
}
int[,] result = new int[rowsA, colsB];
for (int i = 0; i < rowsA; i++)
{
for (int j = 0; j < colsB; j++)
{
int sum = 0;
for (int k = 0; k < colsA; k++)
{
sum += matrixA[i, k] * matrixB[k, j];
}
result[i, j] = sum;
}
}
return result;
}
static void PrintMatrix(int[,] matrix)
{
int rows = matrix.GetLength(0);
int cols = matrix.GetLength(1);
for (int i = 0; i < rows; i++)
{
for (int j = 0; j < cols; j++)
{
Console.Write(matrix[i, j] + "\t");
}
Console.WriteLine();
}
Console.WriteLine();
}
}
Пример выше демонстрирует операцию матричного умножения для двух матриц matrixA
и matrixB
, а также выводит результат умножения в виде resultMatrix
. Пожалуйста, учтите, что это всего лишь пример, и вы можете настроить размеры и значения матриц по своему усмотрению.


Похожие вопросы
Топ вопросов за вчера в категории Информатика

Информатика 47

Информатика 33

Информатика 67

Информатика 18

Информатика 25

Информатика 563

Информатика 16
Последние заданные вопросы в категории Информатика
Предметы
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili