Bien sûr, voici un exemple de code Python pour simuler un processus de réseaux sociaux. Ce code simule la croissance d’un réseau social en ajoutant des utilisateurs et des amitiés entre eux. Nous utiliserons des structures de données graphiques pour représenter les utilisateurs et les relations.
« `python
import networkx as nx
import random
class SocialNetworkSimulation:
def __init__(self, initial_users=5):
self.G = nx.Graph()
self.add_initial_users(initial_users)
def add_initial_users(self, num_users):
for i in range(num_users):
self.G.add_node(i)
def add_friend(self, user1, user2):
if user1 in self.G and user2 in self.G:
self.G.add_edge(user1, user2)
print(f »User {user1} has added User {user2} as a friend. »)
else:
print(f »User {user1} or User {user2} does not exist. »)
def remove_friend(self, user1, user2):
if user1 in self.G and user2 in self.G:
if self.G.has_edge(user1, user2):
self.G.remove_edge(user1, user2)
print(f »User {user1} has removed User {user2} as a friend. »)
else:
print(f »User {user1} and User {user2} are not friends. »)
else:
print(f »User {user1} or User {user2} does not exist. »)
def add_new_user(self):
new_user = len(self.G.nodes)
self.G.add_node(new_user)
print(f »User {new_user} has joined the network. »)
self.add_initial_friends(new_user)
def add_initial_friends(self, new_user):
num_friends = random.randint(1, 5)
for _ in range(num_friends):
existing_user = random.choice(list(self.G.nodes))
self.add_friend(new_user, existing_user)
def display_network(self):
print(« Network structure: »)
for node in self.G.nodes:
print(f »User {node} is friends with: {[user for user in self.G.neighbors(node)]} »)
def simulate_network_growth(self, num_steps):
for _ in range(num_steps):
self.add_new_user()
# Simulation
simulation = SocialNetworkSimulation(initial_users=5)
simulation.display_network()
simulation.simulate_network_growth(num_steps=10)
simulation.display_network()
« `
### Explication du code
1. Importation des bibliothèques: Nous utilisons `networkx` pour créer et manipuler le graphe, et `random` pour ajouter des éléments aléatoires.
2. Classe `SocialNetworkSimulation`: Cette classe gère la simulation du réseau social.
3. Constructeur `__init__`: Initialise le graphe et ajoute un nombre initial d’utilisateurs.
4. Méthode `add_initial_users`: Ajoute un nombre initial d’utilisateurs au graphe.
5. Méthode `add_friend`: Ajoute une relation d’amitié entre deux utilisateurs existants.
6. Méthode `remove_friend`: Supprime une relation d’amitié entre deux utilisateurs existants.
7. Méthode `add_new_user`: Ajoute un nouvel utilisateur au graphe et lui fait ajouter quelques amis existants au hasard.
8. Méthode `add_initial_friends`: Ajoute un nombre aléatoire d’amis à un nouvel utilisateur.
9. Méthode `display_network`: Affiche la structure actuelle du réseau.
10. Méthode `simulate_network_growth`: Simule la croissance du réseau en ajoutant de nouveaux utilisateurs.
### Utilisation
– Nous créons une instance de `SocialNetworkSimulation` avec 5 utilisateurs initiaux.
– Nous affichons la structure initiale du réseau.
– Nous simulons la croissance du réseau en ajoutant 10 nouveaux utilisateurs.
– Nous affichons la structure finale du réseau.
Ce code fournit une base pour simuler la dynamique d’un réseau social, et peut être étendu pour inclure des fonctionnalités plus avancées comme la détection de communautés, l’analyse des influenceurs, etc.