https://pythonprogramminghelp.com/3-smart-strategies-to-binomial-distribution/