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