In [6]:
import random

class Species():
    def __init__(self, n0, r):
        self.n = n0
        self.r = r
        
    def reproduce(self):
        self.n = self.n + self.r * self.n + random.normalvariate(0, 1)
        
    def get_n(self):
        return self.n
In [7]:
populations = []
for i in range(100):
    populations.append(Species(10, 0.1))
In [8]:
t = 0
while t < 50:
    for pop in populations:
        pop.reproduce()
    t +=1
In [9]:
for pop in populations:
    print pop.get_n()
1187.30268427
1498.43881535
1152.93307959
1025.63448333
1004.05374114
1291.15384354
1349.05247573
1355.22306712
1311.97943218
1099.19638861
1078.91858776
1416.6566689
1224.48965262
1171.72805037
1030.74376609
802.408345357
1015.68450458
1305.74777605
799.860764043
1128.7727934
1371.7533796
1197.85874158
1001.65284129
678.176672147
641.622028646
1216.2796017
930.488512866
1267.25220939
1309.77280976
1079.45077535
1269.16821745
1536.11398639
912.279369713
1129.18051567
1205.08342937
567.688537758
1557.4174001
1277.8319238
1380.60039805
1320.02032799
1374.24918625
994.199500445
1016.79148705
1361.30611202
989.225705472
1124.6738666
1191.22365594
1280.15341555
1411.3433921
951.433382667
600.888556288
1375.72592214
1529.34991524
765.886294914
2119.17233979
938.417938682
1323.87538976
1246.37094194
1290.98724938
940.257454167
1358.73040458
977.499643774
1159.53799224
1260.26811587
1488.72342369
1038.02530137
573.866634171
1272.50350282
1227.40258877
1044.81839834
1278.49853735
753.849019119
1246.08159118
1210.36591502
967.817747881
1298.00723567
1231.76049402
1113.34048685
955.017574979
1195.61836826
1081.16876251
1448.06295865
1186.16384135
1161.96711826
1086.03804422
1138.69080702
1009.03927318
1323.37132138
976.252563491
889.472537056
1233.02099882
657.937153357
931.569058627
1253.8246873
1149.68845709
1444.99609776
1293.51816643
1195.15753201
1385.64409905
820.513001523