fork download
  1. import numpy as np
  2.  
  3. Poisson = lambda L,k: np.exp(k * np.log(L) - np.sum(np.log(np.arange(1,k+1))) - L)
  4. Binomial = lambda p,n,k: np.exp(np.sum(np.log(np.arange(1, n+1))) - np.sum(np.log(np.arange(1, k+1))) - np.sum(np.log(np.arange(1,n-k+1))) + k*np.log(p) + (n-k)*(np.log1p(-p)))
  5.  
  6. # 2 年遇到 2 次 50 年一遇暴雨
  7. print(Poisson(2*(1/50),2))
  8. print(Binomial(1/50,2,2))
  9.  
  10. # 30 年遇到 4 次 50 年一遇暴雨
  11. print(Poisson(30*(1/50),4))
  12. print(Binomial(1/50,30,4))
  13.  
  14. # 800 年遇到 17 次 1000 年一遇暴雨
  15. print(Poisson(800*(1/1000),17))
  16. print(Binomial(1/1000,800,17))
  17.  
Success #stdin #stdout 0.21s 27108KB
stdin
Standard input is empty
stdout
0.0007686315513218588
0.0004000000000000001
0.0029635828349077443
0.002593150704191794
2.844629294599255e-17
2.4372248967573228e-17