一千萬個為什麽

搜索

如何修復這個python程序?

import math

def p(n):
    return 393000*((288200/393000)^n * math.exp(-(288200/393000)))/math.factorial(n)

print p(3)

當我運行它時,我收到以下錯誤消息:

Traceback (most recent call last):
  File "poisson.py", line 6, in 
    print p(3)
  File "poisson.py", line 4, in p
    return 393000*((288200/393000)^n * math.exp(-(288200/393000)))/math.factoria
l(n)
TypeError: unsupported operand type(s) for ^: 'int' and 'float'

最佳答案

^ 替換為 ** in

(288200/393000)^n

請記住

288200/393000

返回 0

也許你應該嘗試使用十進制數字:

import math

def p(n):
    a = 393000.0 # <-- notice the .0 
    b = 288200.0
    c = b/a
    return a * ( c**n * math.exp(-c) )/ math.factorial(n)

print p(3)

返回:

12406.890756

轉載註明原文: 如何修復這個python程序?