Funktion wird nicht aufgerufen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
slomy27
User
Beiträge: 1
Registriert: Donnerstag 3. Dezember 2020, 09:57

Hallo zusammen,
ich sollte ein Programm für eine Poisson-Verteilung schreiben. Leider habe ich aber das Problem, dass im Ablauf meines Programms die entsprechende Funktion nicht ausgeführt wird. Es erscheint aber keine Fehlermeldung. Deshalb konnte ich leider den Fehler nicht finden.

Code: Alles auswählen

lam = 5
def poisson(lam):
    
    el = np.math.exp(-lam)
    k = 0
    u = np.random.uniform (0,1,n)
    pp = el
    fact = 1
    pow = 1
    
    if u > pp:
        while u > pp:
            k = k+1
            fact = k*fact
            pow = lam*pow
            pp = pp+ (pow/fact*el)
            
            return k
    else:
        return k
Danke schon mal im Voraus für eure Antworten.
mfg slomy
__deets__
User
Beiträge: 14545
Registriert: Mittwoch 14. Oktober 2015, 14:29

Du musst deine Funktion schon aufrufen. Sonst wird sie nicht aufgerufen.
Sirius3
User
Beiträge: 18274
Registriert: Sonntag 21. Oktober 2012, 17:20

Benutze keine einbuchstabigen Variablennamen oder Abkürzungen. Was ist el oder pp und welche Fakten enthält fact?
Eine Zeile ist falsch eingerückt.
Jankie
User
Beiträge: 592
Registriert: Mittwoch 26. September 2018, 14:06

Die while Schleife macht dort auch keinen Sinn, bzw. mit dem if davor, da du vorher prüfst ob u > pp ist und dann solange u > pp ist was ausführst, was du dann im ersten Durchlauf mit dem return verlässt.
Antworten