Let's use sympy to make the maths easier. Let's start by making an expression that describes the curve from the chart in the previous vide.
import sympy as sp
g, p = sp.symbols("g, p")
exp = g * (1-p) ** g
You can take this expression and differentiate it with regards to g
.
sp.diff(exp, g)
We have a maximum value when there's a slope equal to zero. We can ask sympy to calculate this for us.
sp.solve(sp.diff(exp, g), g)
This means that we can use sympy to give us the optimal group size given a probability value.
g_opt = -1/sp.log(1 - p)
g_opt.subs(p, 0.01)
This is neat!
Extra!
In case you're interested, we have content on sympy if you're unfamiliar.