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

(Написать код на C#) Разработать процедуру и/или функцию, реализующую операцию матричного умножения.

Ответ:
inlivemulorada
inlivemulorada
15.10.2020 20:06

Код:

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;        }    }}
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?