Recherche parallèle dans une matrice bidimensionnelle à l’aide de goroutines et de canaux
Go
Hard
goroutines
Tâche «Recherche parallèle dans une matrice bidimensionnelle à l’aide de goroutines et de canaux»
Étant donné une matrice rectangulaire d’entiers. Il faut implémenter un algorithme parallèle pour compter le nombre d’occurrences d’un nombre donné dans la matrice. L’algorithme doit diviser la matrice en N parties égales (par lignes), lancer N goroutines pour traiter chaque partie en parallèle, collecter les résultats via un canal et afficher le total. Si le nombre n’est pas trouvé, afficher 0. Utilisez sync.WaitGroup pour la synchronisation des goroutines.
Format d\ entrée
Première ligne : deux entiers M et N (1 ≤ M, N ≤ 1000) — dimensions de la matrice. Les M lignes suivantes : N entiers — éléments de la matrice. Dernière ligne : un entier X — valeur recherchée.
Format de sortie
Un entier — le nombre d’occurrences de X dans la matrice.
Exemples
Exemple 1
ENTRÉE
3 3
1 2 3
4 5 6
7 8 9
5
SORTIE
1
Exemple 2
ENTRÉE
2 4
1 2 3 4
2 3 4 5
10
SORTIE
0
Exemple 3
ENTRÉE
0
2
next
next
reset
next
next
SORTIE
0
2
0
2
Exemple 4
ENTRÉE
3
2 3 4
SORTIE
12
main.go