# Parameter startpop = 4000000 # Potentiell Ansteckbare rwert = 1.2 # Anzahl Personen, die eine Infizierte Person im Schnitt ansteckt immun = 0 # Anzahl immune Personen # Zeitliche Parameter (an welchen Tagen nach der Ansteckung was passiert) ansteckungstart = 4 ansteckungende = 8 immunitaet = 14 # status[0] ist die Anzahl der heute Angesteckten, # status[n] ist die Anzahl der vor n Tagen Angesteckten # Erst mal alles mit dem Start der täglich infizierten füllen: status = [100 for i in range(immunitaet+1)] pop = startpop-sum(status) # Zur zeit noch ansteckbare csv = "Tag;Ansteckbare;Neuansteckungen;Immune\n" tag = 0 while status[0]>50 or tag<50: # Wiederholen, so lange sich mehr als 50 Leute pro Tag anstecken (aber mindestend 50 Tage) csv += f"{tag};{pop};{status[0]};{immun}\n" tag += 1 # Ein Tag weiter (Einträge verschieben) immun += status.pop() # Letztes Element entfernen und den Immunen hinzufügen ansteckend = sum(status[ansteckungstart:ansteckungende]) # Anzahl ansteckende ermitteln # Neuinfizierte berechnen neuinfiziert = ansteckend*rwert/(ansteckungende-ansteckungstart)*pop/startpop # Vorne in Liste einfügen status.insert(0, neuinfiziert) # Ansteckbare vermindern pop -= neuinfiziert with open("epidemie.csv", "w") as f: f.write(csv) print("CSV Datei geschrieben, die kann nun mit Excel geöffnet werden.")