Skip to content

Commit

Permalink
Simplify simulation example using the new random.binomialvariate()
Browse files Browse the repository at this point in the history
  • Loading branch information
rhettinger committed Jan 9, 2024
1 parent 65f8eb7 commit db33685
Showing 1 changed file with 4 additions and 7 deletions.
11 changes: 4 additions & 7 deletions Doc/library/statistics.rst
Original file line number Diff line number Diff line change
Expand Up @@ -1026,19 +1026,16 @@ probability that the Python room will stay within its capacity limits?
>>> round(NormalDist(mu=n*p, sigma=sqrt(n*p*q)).cdf(k + 0.5), 4)
0.8402

>>> # Solution using the cumulative binomial distribution
>>> # Exact solution using the cumulative binomial distribution
>>> from math import comb, fsum
>>> round(fsum(comb(n, r) * p**r * q**(n-r) for r in range(k+1)), 4)
0.8402

>>> # Approximation using a simulation
>>> from random import seed, choices
>>> from random import seed, binomialvariate
>>> seed(8675309)
>>> def trial():
... return choices(('Python', 'Ruby'), (p, q), k=n).count('Python')
...
>>> mean(trial() <= k for i in range(10_000))
0.8398
>>> mean(binomialvariate(n, p) <= k for i in range(10_000))
0.8406


Naive bayesian classifier
Expand Down

0 comments on commit db33685

Please sign in to comment.