Как реализовать на C# алгоритм паралельного умножения матриц?

программирование C# .net thread

Для этого лучше всего использовать класc Thread и возможности .NET Framework

Примечание:
Точнее говоря паралельный алгоритм умножения матриц.
Ответы:
using System;
using System.Threading.Tasks;
internal static class Test{
   private static void Main(){
       int[,] a={{ 1, 2, 3, 4},
                 { 5, 6, 7, 8},
                 { 9,10,11,12}};
       int[,] b={{13,14,15},
                 {16,17,18},
                 {19,20,21},
                 {22,23,24}};
       PrintMatrix(MatrixMult(a,b));
       Console.WriteLine();
       PrintMatrix(MatrixMult(b,a));
   }
   private static void PrintMatrix(int[,] matrix){
       //TODO проверка входных аргументов
       for(int i=0;i<matrix.GetLength(0);++i){
           for(int j=0;j<matrix.GetLength(1);++j){
               Console.Write("{0,5}",matrix[i,j]);
           }
           Console.WriteLine();
       }
   }
   private static int[,] MatrixMult(int[,] left,int[,] right){
       //TODO проверка входных аргументов
       int[,] result=new int[left.GetLength(0),right.GetLength(1)];
       Parallel.For(0,result.GetLength(0),i=>
           Parallel.For(0,result.GetLength(1),j=>{
               int sum=0;
               for(int k=0;k<left.GetLength(1);++k){
                   sum+=left[i,k]*right[k,j];
               }
               result[i,j]=sum;
           })
       );
       return result;
   }
}


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.