public static int LaufzeitErmittlungMult(int minuten, int initGroesse) { int intervall = 100; Aufgabe3Matrix a; Aufgabe3Matrix b; do { a = new Aufgabe3Matrix(initGroesse, initGroesse); a.RandomFill(); b = new Aufgabe3Matrix(initGroesse, initGroesse); b.RandomFill(); a.Mult(b); Console.WriteLine($"Akt. Größe: {initGroesse} und Laufzeit: {a.Laufzeit}"); if (a.Laufzeit.TotalMilliseconds - minuten * 60 * 1000 > 1000) { intervall /= 2; initGroesse = initGroesse - intervall; } else if (a.Laufzeit.TotalMilliseconds - minuten * 60 * 1000 < 0) { intervall *= 2; initGroesse = initGroesse + intervall; } Console.WriteLine($"Akt. Größe: {initGroesse}"); } while ((a.Laufzeit.TotalMilliseconds - minuten * 60 * 1000 > 1000) || (a.Laufzeit.TotalMilliseconds - minuten * 60 * 1000 < 0)); return(initGroesse); }
public Aufgabe3Matrix Add(Aufgabe3Matrix b) { Stopwatch s = new Stopwatch(); s.Start(); Schritte = 0; if (b.M != M || b.N != N) { throw new Exception("Kann nicht addiert werden."); } Aufgabe3Matrix erg = new Aufgabe3Matrix(M, N); for (int i = 0; i < M; i++) { for (int j = 0; j < N; j++) { Schritte++; erg.Matrix[i, j] = Matrix[i, j] + b.Matrix[i, j]; } } s.Stop(); Laufzeit = s.Elapsed; b.Laufzeit = s.Elapsed; b.Schritte = Schritte; return(erg); }
public Aufgabe3Matrix Mult(Aufgabe3Matrix b) { Stopwatch s = new Stopwatch(); s.Start(); Schritte = 0; if (N != b.M) { throw new Exception("Kann nicht Multipliziert werden."); } Aufgabe3Matrix erg = new Aufgabe3Matrix(M, b.N); for (int i = 0; i < b.N; i++) { for (int j = 0; j < M; j++) { for (int k = 0; k < N; k++) { Schritte++; erg.Matrix[j, i] += Matrix[j, k] * b.Matrix[k, i]; } } } s.Stop(); Laufzeit = s.Elapsed; b.Laufzeit = s.Elapsed; b.Schritte = Schritte; return(erg); }