Treść zadania
Autor: hikicianka Dodano: 16.12.2013 (22:18)
Mnożenie macierzy w C#.
Poniższe mnożenie należy zrobić używając wątków (threads). Ogólnie zadanie polega na porównaniu czasów wykonania programu na jednym wątku i na wielu wątkach.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
//using System.Threading.Tasks;
namespace macierze
{
class Program
{
static void Main(string[] args)
{
int[,] mac1, mac2, mac;
int a, b, c, d, t;
Random gen = new Random(); //metoda, za pomocą której można generować liczby pseudolosowe
a = 2000; b = 2000; c = 2000; d = 2000;
mac1 = new int[c, d];
mac2 = new int[a, b];
mac = new int[c, b];
for (int i = 0; i < c; i++)
{
for (int j = 0; j < d; j++)
{
mac1[i, j] = gen.Next(1, 1000); //generowanie pierwszej macierzy
// Console.Write(mac1[i,j]+"|");
}
Console.WriteLine();
}
Console.WriteLine();
for (int k = 0; k < a; k++)
{
for (int l = 0; l < b; l++)
{
mac2[k, l] = gen.Next(1, 1000); //generowanie drugiej macierzy
// Console.Write(mac2[k, l] + "|");
}
Console.WriteLine();
}
DateTime start = DateTime.Now;
for (int i = 0; i < c; i++)
{
for (int j = 0; j < b; j++)
{
t = 0;
for (int k = 0; k < d; k++) t = t + mac1[i, k] * mac2[k, j]; //mnożenie macierzy
mac[i, j] = t;
}
}
// DateTime st = DateTime.Now;
DateTime stop = DateTime.Now;
//TimeSpan czas = stop - start;
TimeSpan czas = stop - start;
Console.WriteLine();
Console.WriteLine(czas.TotalMilliseconds);
// Console.WriteLine("Czas Start:" + start + "\nCzas Stop:" + stop);
Console.WriteLine();
for (int i = 0; i < c; i++)
{
for (int j = 0; j < b; j++)
{
//wyswietlanie wynikowej macierzy
// Console.Write(mac[i, j] + "|");
}
// Console.WriteLine();
}
Console.ReadKey();
}
}
}
Zadanie jest zamknięte. Autor zadania wybrał już najlepsze rozwiązanie lub straciło ono ważność.
Rozwiązania
Podobne zadania
Czy ktoś zrobi mi pracę w GIMPie? Przedmiot: Informatyka / Liceum | 2 rozwiązania | autor: Dorotka15_1993 30.9.2010 (19:24) |
Kto będzie taki kochany i zrobi mi stronę we Frontpage? może mieć dowolny Przedmiot: Informatyka / Liceum | 1 rozwiązanie | autor: kas03 19.12.2010 (19:42) |
Podobne materiały
Przydatność 55% Algebra macierzy
Dodawanie macierzy. Dwie macierze możemy dodać wtedy, gdy są tego samego wymia¬ru. Przykład: Niech Wówczas
0 odpowiada - 0 ogląda - 0 rozwiązań
Zgłoś nadużycie