Afficher les amis des amis a partir de matrice adj
Résolu
zey
-
zey -
zey -
Bonjour,
SVP aidez moi a recuperer les succeseurs directe et indircet d'un noeud dans un graphe avec java.
j'ai pu récupérer dans un ArrayList<ArrayList<Integer>> les successeurs direct mais pour les successeurs indirect je n'ai pas su le faire
SVP aidez moi a recuperer les succeseurs directe et indircet d'un noeud dans un graphe avec java.
j'ai pu récupérer dans un ArrayList<ArrayList<Integer>> les successeurs direct mais pour les successeurs indirect je n'ai pas su le faire
A voir également:
- Afficher les amis des amis a partir de matrice adj
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Comment faire une recherche à partir d'une photo - Guide
- Afficher appdata - Guide
- Annuaire portable gratuit a partir d'un nom - Forum Réseaux sociaux
- Afficher toutes les lignes masquées excel ✓ - Forum Excel
1 réponse
Bonjour,
Si tu as une méthode
Remarque : mathématiquement, il serait également possible de calculer le carré de ta matrice d'adjacence, et refaire le même calcul mais avec cette nouvelle matrice.
Cette méthode est un peu plus compliqué à mettre en place (il faut savoir calculer le carré d'une matrice) mais elle permet de gagner en efficacité car on calcule une seule fois la deuxième matrice et après chaque calcul est beaucoup plus rapide.
Si tu as une méthode
Set<Integer> getFriends(List<List<Integer>> matrix, Integer id)qui te renvoie les amis, il te suffit d'appeler à nouveau cette méthode pour calculer chacun des amis de ces amis.
public static Set<Integer> getFriendsOfFriends(List<List<Integer>> matrix, Integer id) { Set<Integer> result = new HashSet<>(); for (Integer friend : getFriends(matrix, id)) { result.addAll(getFriends(matrix, friend)); return result; }
Remarque : mathématiquement, il serait également possible de calculer le carré de ta matrice d'adjacence, et refaire le même calcul mais avec cette nouvelle matrice.
public static Set<Integer> getFriendsOfFriends(List<List<Integer>> matrix, Integer id) { return getFriends(square(matrix), id); }
Cette méthode est un peu plus compliqué à mettre en place (il faut savoir calculer le carré d'une matrice) mais elle permet de gagner en efficacité car on calcule une seule fois la deuxième matrice et après chaque calcul est beaucoup plus rapide.
j'ai tenté aussi de faire ca :
merci encore une fois