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
| #import random
import numpy as np
import matplotlib.pyplot
nb_bacterie=3
duree_experience=3000 #28800 #8j
duree_cycle=35
matiere_nutritive_initiale=5000
quantite_matiere_necessaire_division=50
duree_survie_jeun=10
coeff_exploitation=0.10
def colonie(bacterie,matiere_nutritive,duree_experience):
bacterie=[[k,0,0,0] for k in range (nb_bacterie)]
matiere_nutritive=matiere_nutritive_initiale
Y=[]
for k in range (duree_experience):
nouvelle_bact=0
a=len(bacterie)
matiere_assimilee_par_u_temps=matiere_nutritive*coeff_exploitation
if matiere_nutritive>=matiere_assimilee_par_u_temps*a:
matiere_nutritive=matiere_nutritive-matiere_assimilee_par_u_temps*a
for i in range (0,a):
bacterie[i][2]= [bacterie[i][2]+matiere_assimilee_par_u_temps]
if bacterie[i][2]>=quantite_matiere_necessaire_division:#c'est ici le probleme selon python
nouvelle_bact+=1
if bacterie[i][1]==duree_cycle:
bacterie.pop(i)
bacterie[i][1]+=1
for k in range (nouvelle_bact):
bacterie.append([len(bacterie),0,0,0])
else:
a=int(matiere_nutritive/len(bacterie))
matiere_nutritive=0
for i in range (a):
bact_mange=random.randint(0,len(bacterie)-1)
bacterie[bact_mange][2]+=matiere_assimilee_par_u_temps
for i in range (len(bacterie)):
if bacterie[i][1]==duree_cycle:
bacterie.pop(i)
bacterie[i][1]+=1
if bacterie[i][2]>=quantite_matiere_necessaire_division:
nouvelle_bact+=1
if bacterie[i][3]==duree_survie_jeun:
bacterie.pop(i)
else:
bacterie[i][3]+=1
for k in range (nouvelle_bact):
bacterie.append([len(bacterie),0,0,0])
Y.append(len(bacterie))
return Y |
Partager