voici mon code :
Code : 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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
import random
import numpy
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import matplotlib.colors as color
 
Taille =  100
ProportionArbre = 0.70
Clairiere = int(0)
Flamme = int(1)
Cendre = int(2)
Arbre = int(3)
 
random.seed(5)
 
#question 1 Fonction à prouver
def ArbreAuHasard (p):
    if random.random() < p:
        return Arbre
    else:
        return Clairiere
 
# question 2 Fonction à écrire
def InitialiserForetAuHasard( taille , p):
    foret=numpy.zeros(shape=(taille,taille),dtype=int)
    for i in range(taille):
        for j in range(taille):
            foret[i,j]=ArbreAuHasard(p)
    return(foret)
 
# questions 3 et 4 fonction à écrire    
def Propagation( foret ):
    foret2=numpy.zeros((Taille+2,Taille+2),dtype=int)
    for i in range(1,Taille+1):
        for j in range(1,Taille+1):
            foret2[i,j]=foret[i-1,j-1]
    for i in range(1,Taille+1):
        for j in range(1,Taille+1):
            if foret2[i,j]==Flamme:
                foret2[i,j]=Cendre
    for i in range(1,Taille+1):
        for j in range(1,Taille+1):
            if foret2[i,j]==Cendre and foret2[i,j-1]==Arbre:
                foret2[i,j-1]=Flamme
            elif foret2[i,j]==Cendre and foret2[i,j+1]==Arbre:
                foret2[i,j+1]=Flamme
            elif foret2[i,j]==Cendre and foret2[i+1,j]==Arbre:
                foret2[i+1,j]=Flamme
            elif foret2[i,j]==Cendre and foret2[i-1,j]==Arbre:
                foret2[i-1,j]=Flamme
    for i in range(1,Taille+1):
        for j in range(1,Taille+1):
            foret[i-1,j-1]=foret2[i,j]
    return(foret)
 
 
 
# question 5 Code à executer    
def code(taille,p):
    foret=InitialiserForetAuHasard( taille , p)
    print(foret)
    foret[int(Taille/2) , int(Taille/2)] = Flamme
    fig = plt.figure()
    im = []
    listeCouleurs = [[0,0,0]] * 4
    listeCouleurs[Clairiere] = [1,1,1] # Les clairières sont representées en blanc
    listeCouleurs[Flamme] = [1,0,0] # Les Flammes sont en rouge
    listeCouleurs[Arbre] = [0,1,0] # Les arbres sont de couleur verte
    listeCouleurs[Cendre] = [0.5,0.5,0.5] # Les cendres sont grises
    couleurs = color.ListedColormap(listeCouleurs)
    for n in range(2*Taille):
        im.append([plt.imshow(foret,interpolation='none',cmap=couleurs)])
        foret = Propagation(foret)
    ani = animation.ArtistAnimation(fig,im,interval=50,blit=True,repeat_delay=100)
    #plt.show()
    c=0
    a=0
    for i in range(taille):
        for j in range(taille):
            if foret[i,j]==Cendre:
                c=c+1
            elif foret[i,j]==Arbre:
                a=a+1
    print("Sur {} arbres, {} ont ete brules et il n'en reste plus que {}, ce qui fait {}% d'arbres brules".format(a+c,c,a,c/(a+c)*100))
    return(ani)
#    
#    
#    
#    
# question 6 remplacer pass
def PropagationRapide(foret, positionFlamme):
    foret2=numpy.zeros((Taille+2,Taille+2),dtype=int)
    for i in range(Taille):
        for j in range(Taille):
            foret2[i+1,j+1]=foret[i,j]
    for i in positionFlamme:
        foret[i]=Flamme
    for i in range(1,Taille+1):
        for j in range(1,Taille+1):
            foret[i-1,j-1]=foret2[i,j]
    return(foret)
 
 
# question 7
def comptageArbre(foret):
    a=0
    for i in range(Taille):
        for j in range(Taille):
            if foret[i,j]==Arbre:
                a=a+1
    return a
 
#
# question 8 
def comptageArbresRestants( tailleForet , probabiliteArbre):
    foret = InitialiserForetAuHasard(taille = tailleForet , probabiliteArbre = probabiliteArbre)
    positionFlammes = [[Taille//2 , Taille//2]]
    foret[Taille//2 , Taille//2] = Flamme
    compteur = 0
    while (compteur < tailleForet) and (len(positionFlammes) > 0):
        compteur += 1
        foret , positionFlammes = PropagationRapide(foret , positionFlammes)
    return comptageArbre(foret)
 
def moyenneArbreRestants( tailleForet , probabiliteArbre , tailleEchantillon):
    s = 0
    for i in range(1,tailleEchantillon+1):
        s += comptageArbresRestants(tailleForet , probabiliteArbre)
    return s/float(i)
j'essaye d'exécuter ce code pour x=[0;0.01;...;0.99;1] :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
>>> for i in x:
...     y[100*i]=moyenneArbreRestants(100,i,10)
python me renvoie
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
  File "C:/Users/KEVIN/Desktop/cours/info/TD01FichierReponse.py", line 137, in moyenneArbreRestants
    s += comptageArbresRestants(tailleForet , probabiliteArbre)
  File "C:/Users/KEVIN/Desktop/cours/info/TD01FichierReponse.py", line 125, in comptageArbresRestants
    foret = InitialiserForetAuHasard(taille = tailleForet , probabiliteArbre = probabiliteArbre)
TypeError: InitialiserForetAuHasard() got an unexpected keyword argument 'probabiliteArbre'
pourriez-vous m'expliquer mon erreur, je ne comprend pas SVP ?

d'avance