Seite 1 von 1

Funktion wird nicht aufgerufen

Verfasst: Donnerstag 3. Dezember 2020, 10:11
von slomy27
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

Re: Funktion wird nicht aufgerufen

Verfasst: Donnerstag 3. Dezember 2020, 11:19
von __deets__
Du musst deine Funktion schon aufrufen. Sonst wird sie nicht aufgerufen.

Re: Funktion wird nicht aufgerufen

Verfasst: Donnerstag 3. Dezember 2020, 11:28
von Sirius3
Benutze keine einbuchstabigen Variablennamen oder Abkürzungen. Was ist el oder pp und welche Fakten enthält fact?
Eine Zeile ist falsch eingerückt.

Re: Funktion wird nicht aufgerufen

Verfasst: Donnerstag 3. Dezember 2020, 11:58
von Jankie
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.