Code Python : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
def update(network, informedPeople,rumor_liste,p,arguments):
          """ Fonction qui va mettre a jour l'etat du reseau  """
         numberOfNewInformedPeople = 1
         newInformedPeople = list(informedPeople)
         for i in range(len(informedPeople)): 
            if informedPeople[i]: # pour chaque personne informee
            candidat = []
            for j in range(len(informedPeople)): # creation de la liste des amis de la personne
                if i!=j :
                                     if  'd' in arguments.keys():
                                        if network[i][j]:
                                               candidat += [j]
                                     else: 
                                        if network[i][j] and not newInformedPeople[j] :
                                                candidat+=[j]
            if len(candidat)>0:
                rumor=rumor_liste[i]
                selectedCandidat = randint(0,len(candidat)-1) # choix d'un ami a informer
                choose=candidat[selectedCandidat]
                newInformedPeople[choose]=True
                if not(informedPeople[choose]):
                    numberOfNewInformedPeople +=1                       
                if arguments['u']!="stable":
                    if arguments['u']=="rewrite":
                       rumor=rumor_liste[i]
                       rumor_liste[choose]=transmission(arguments,rumor)
                    elif arguments['u']=="mixture":
                       for x in range(len(rumor_liste[choose])):
                           for y in range(len(rumor_liste[i])):
                              if rumor_liste[choose][x] != rumor_liste[i][y]:
                                    proba=[rumor_liste[choose][x] for i in range(p*10)]
                                    for i in range(10-p*10):
                                       proba.append(rumor_liste[i][y])
                                    rumor_liste[choose][x]=rumor_liste[choose].replace(rumor_liste[choose][x],str(choice(proba)))
 
                else:
                    if  rumor_liste[choose] =='X':
                       rumor=rumor_liste[i]
                       rumor_liste[choose]=transmission(arguments,rumor)   
    informedPeople[:] = newInformedPeople
    return numberOfNewInformedPeople , informedPeople ,rumor_liste