Eine Geschichte auf der BBC News-Website macht die folgende Behauptung:
Braune Ratten sind eine der schwerwiegendsten Säugetierschädlinge des Planeten, die Ernten ruinieren und Krankheiten beherbergen. Erfahrene Springer, Kletterer und Schwimmer, ein einzelnes Paar kann sich innerhalb eines Jahres auf 200 vermehren.
Können sich Ratten so schnell vermehren?
Laut dieser Seite Ratten:
Beginnend mit zwei geschlechtsreifen Ratten (und unter der Annahme von Durchschnittswerten aller oben genannten Punkte) wird das ursprüngliche Paar 7 Würfe mit 8 Ratten in einem Jahr hervorbringen – 56 Ratten. Der erste Wurf in der zweiten Generation wird 4 Monate nach der Geburt (5 Monate nach Jahresbeginn) fruchtbar, und so werden die vier Weibchen in diesem Wurf etwa 7/12 * 7 = 4 Würfe pro Jahr haben - 128 Ratten. 128 + 56 = 184. Das ist so nah an den 200, dass wir uns um die restlichen 6 Würfe oder weitere Generationen keine Sorgen machen müssen. Ratten sind eindeutig in der Lage, innerhalb eines Jahres mindestens 200 zu werden.
Anhand der in DJClayworths Antwort zitierten Statistiken berechnet dieses Python-Programm, dass ein männliches/weibliches Paar ausgewachsener Ratten (unter idealen Bedingungen) in einem Jahr zu einer Population von etwa 250 heranwachsen könnte.
import matplotlib.pyplot as plt
maturity_age = 120 # days
litter_frequency = 52 # 7 litters per year implies a new litter is born every 52 (=365/7) days
# starting population consists of a mature male and female pair
rats = [{'gender':'male', 'age':litter_frequency*2},
{'gender':'female', 'age':litter_frequency*2}]
pop = []
for day in range(365):
new_rats = []
for i, rat in enumerate(rats):
if ((rat['age'] >= maturity_age)
and (rat['gender'] == 'female')
and (rat['age'] % litter_frequency == 0)):
# new litter consists of 4 males, 4 females
new_rats.extend([
{'gender': gender, 'age': 0} for gender in ['male', 'female']
for i in range(4)])
print('Day {}: rat #{} ({} days old) gives birth to a new litter. (Pop size = {})'.format(day, i, rat['age'], len(rats)+len(new_rats)))
rat['age'] += 1
rats.extend(new_rats)
pop.append(len(rats))
plt.plot(pop)
plt.xlabel('days')
plt.ylabel('population')
plt.show()
Erträge
Day 52: rat #1 (156 days old) gives birth to a new litter. (Pop size = 10)
Day 104: rat #1 (208 days old) gives birth to a new litter. (Pop size = 18)
Day 156: rat #1 (260 days old) gives birth to a new litter. (Pop size = 26)
Day 208: rat #1 (312 days old) gives birth to a new litter. (Pop size = 34)
Day 209: rat #6 (156 days old) gives birth to a new litter. (Pop size = 42)
Day 209: rat #7 (156 days old) gives birth to a new litter. (Pop size = 50)
Day 209: rat #8 (156 days old) gives birth to a new litter. (Pop size = 58)
Day 209: rat #9 (156 days old) gives birth to a new litter. (Pop size = 66)
Day 260: rat #1 (364 days old) gives birth to a new litter. (Pop size = 74)
Day 261: rat #6 (208 days old) gives birth to a new litter. (Pop size = 82)
Day 261: rat #7 (208 days old) gives birth to a new litter. (Pop size = 90)
Day 261: rat #8 (208 days old) gives birth to a new litter. (Pop size = 98)
Day 261: rat #9 (208 days old) gives birth to a new litter. (Pop size = 106)
Day 261: rat #14 (156 days old) gives birth to a new litter. (Pop size = 114)
Day 261: rat #15 (156 days old) gives birth to a new litter. (Pop size = 122)
Day 261: rat #16 (156 days old) gives birth to a new litter. (Pop size = 130)
Day 261: rat #17 (156 days old) gives birth to a new litter. (Pop size = 138)
Day 312: rat #1 (416 days old) gives birth to a new litter. (Pop size = 146)
Day 313: rat #6 (260 days old) gives birth to a new litter. (Pop size = 154)
Day 313: rat #7 (260 days old) gives birth to a new litter. (Pop size = 162)
Day 313: rat #8 (260 days old) gives birth to a new litter. (Pop size = 170)
Day 313: rat #9 (260 days old) gives birth to a new litter. (Pop size = 178)
Day 313: rat #14 (208 days old) gives birth to a new litter. (Pop size = 186)
Day 313: rat #15 (208 days old) gives birth to a new litter. (Pop size = 194)
Day 313: rat #16 (208 days old) gives birth to a new litter. (Pop size = 202)
Day 313: rat #17 (208 days old) gives birth to a new litter. (Pop size = 210)
Day 313: rat #22 (156 days old) gives birth to a new litter. (Pop size = 218)
Day 313: rat #23 (156 days old) gives birth to a new litter. (Pop size = 226)
Day 313: rat #24 (156 days old) gives birth to a new litter. (Pop size = 234)
Day 313: rat #25 (156 days old) gives birth to a new litter. (Pop size = 242)
Day 364: rat #1 (468 days old) gives birth to a new litter. (Pop size = 250)
Um das Skript auf einem Computer auszuführen (mit installiertem Python und matplotlib), speichern Sie den Code in einer Datei mit dem Namen script.py
, und führen Sie ihn dann über die Befehlszeile aus:
python script.py
Beachten Sie, dass die Antwort von DJClayworth davon ausgeht, dass die zweite Generation von Ratten 4 Würfe zur Welt bringt. Unter der Annahme, dass der erste Wurf an Tag 52 geboren wird, zeigt die obige Simulation, dass Weibchen der zweiten Generation möglicherweise nur jeweils 3 Würfe haben. Die Abrechnung ist also etwas anders, obwohl die Schlussfolgerung (dass ein einzelnes Paar mehr als 200 Ratten hervorbringen kann) dieselbe ist.
for day in range(365)
Iteriert
also über die ganzen Zahlen von 0 bis 364 (einschließlich).litter_frequency*2
in litter_frequency*2+1
der ursprünglichen Definition von rats
.
Seltsames Denken
mowwwalker
DJ Clayworth
mowwwalker
Tom77
Schadur
T. Sar
PoloHoleSet