Parallele Suche in einer zweidimensionalen Matrix unter Verwendung von Goroutinen und Kanälen

Go Hard goroutines

Aufgabe «Parallele Suche in einer zweidimensionalen Matrix unter Verwendung von Goroutinen und Kanälen»

Es ist eine rechteckige Matrix aus ganzen Zahlen gegeben. Es muss ein paralleler Algorithmus zur Suche der Anzahl der Vorkommen einer bestimmten Zahl in der Matrix implementiert werden. Der Algorithmus soll die Matrix in N gleiche Teile (zeilenweise) aufteilen, N Goroutinen zur parallelen Verarbeitung jedes Teils starten, die Ergebnisse über einen Kanal sammeln und die Gesamtanzahl ausgeben. Wenn die Zahl nicht gefunden wird, geben Sie 0 aus. Verwenden Sie sync.WaitGroup zur Synchronisation der Goroutinen.

Eingabeformat

Erste Zeile: zwei ganze Zahlen M und N (1 ≤ M, N ≤ 1000) — die Dimensionen der Matrix. Nächste M Zeilen: N ganze Zahlen — die Elemente der Matrix. Letzte Zeile: eine ganze Zahl X — der gesuchte Wert.

Ausgabeformat

Eine ganze Zahl — die Anzahl der Vorkommen von X in der Matrix.

Beispiele

Beispiel 1

EINGABE
3 3 1 2 3 4 5 6 7 8 9 5
AUSGABE
1

Beispiel 2

EINGABE
2 4 1 2 3 4 2 3 4 5 10
AUSGABE
0

Beispiel 3

EINGABE
0 2 next next reset next next
AUSGABE
0 2 0 2

Beispiel 4

EINGABE
3 2 3 4
AUSGABE
12
main.go