Распараллеливание транспонирования матрицы - C#

Узнай цену своей работы

Формулировка задачи:

Помогите распараллелить.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
 
namespace arr
{
    public class myClass
    {
        private int m;
        private int n;
        myClass()
        {
        }
        myClass(int m)
        {
            this.m = m;
        }
        myClass(int m, int n)
        {
            this.m = m;
            this.n = n;
        }
    }
    public class matrica
    {
        private int n;
        private double[,] a;
        public matrica(int n) 
        {
            this.n = n;
            a = new double[n, n];
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    a[i, j] = i + 2 * j + (i * j);
                }
            }
        }
 
        public void print() 
        {
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < n; j++)
                {
                    Console.Write(" {0}", a[i, j]);
                }
                Console.WriteLine();
            }
        }
        public void transp()
        {
            double tmp;
            for (int i = 0; i < n; i++)
            {
                for (int j = 0; j < i; j++)
                {
                    tmp = a[i, j];
                    a[i, j] = a[j, i];
                    a[j, i] = tmp;
                }
 
            }
        }
        class Program
        {
            static void Main(string[] args)
            {
                matrica a = new matrica(3); 
                a.print();
                a.transp();
                Console.WriteLine();
                a.print();
                Console.WriteLine();
            }
        }
    }
}

Решение задачи: «Распараллеливание транспонирования матрицы»

textual
Листинг программы
Parallel.For(0, n, (i) => myfunc(i));
 
private void myfunc(int i)
{
    for (int j = 0; j < i; j++) { double tmp = arr1[i, j];
                arr1[i, j] = arr1[j, i];
                arr1[j, i] = tmp;
};

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 3.9 из 5
Похожие ответы