{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Exercice-Graphe-Réseaux sociaux\n", "\n", "\"ex\"" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "La 'star' d'un réseau est la personne qui est suivie par le plus grand nombre et qui suit le moins de monde. \n", "Quelle est la star de ce réseau?" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On donne le script suivant, quel est son rôle :" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "friend=\\\n", "[[0,0,1,1,0,0,1],\n", "[0,0,0,0,1,1,0],\n", "[1,0,0,1,1,1,0],\n", "[1,0,1,0,0,0,1],\n", "[0,1,1,0,0,1,0],\n", "[0,1,1,0,1,0,0],\n", "[1,0,0,1,0,0,0]]\n", "\n", "Nom=[\"Alice\",\"Bob\",\"Chloé\",\"David\",\"Emma\",\"Fred\",\"Zoé\"]\n", "\n", "for i in range(0,7,1):\n", " nombamis=0\n", " for j in range(0,7,1):\n", " if friend[i][j]==1:\n", " nombamis=nombamis+1\n", " print(Nom[i],\"a\",nombamis, \"amis\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En vous inspirant du précédent programme, écrire un programme qui donne le nombre de 'followers' de chaque personne" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "On souhaite calculer le nombre d'amis d'amis de chaque personne.\n", "Par exemple : Alice a 6 amis d'amis : Tout le monde sauf Bob\n", " \n", "> **Le nombre d'amis d'amis d'une personne $i$ est exactement le nombre de sommets $j$ \n", "dont la distance à $i$ est inférieure ou égale à 2**\n", "\n", "Déterminer par une méthode de votre choix (que vous expliquerez)\n", "Le nombre d'amis d'amis de chaque personne:" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Complément\n", "\n", "Dans la théorie des graphes pour déterminer le nombre de chemin menant d'un sommet à un autre en deux étapes il suffit de calculer le carré de la matrice d'adjacence : calcul réalisé sur ce site\n", "\n", "\"calcul\"\n", "\n", "Interprétation du résultat :\n", "\n", "3 0 1 2 1 1 1 : signifie qu'il y a 3 chemins pour aller de Alice à Alice en 2 étapes,\n", "aucun pour atteindre Bob , 1 pour atteindre Chloé etc...\n", "\n", "Au total 6 amis d'amis pour Alice \n", "4 pour Bob \n", "7 pour Chloé \n", "6 pour David, Emma et Fred \n", "Et 4 pour Zoé \n", "En vous inspirant de cette méthode:\n", "\n", "**Quels sont les personnes qui n'ont pas 7 amis d'amis d'amis ?**" ] }, { "cell_type": "markdown", "metadata": {}, "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.7.3" } }, "nbformat": 4, "nbformat_minor": 2 }