@@ -444,7 +444,7 @@ $Y_5$
444444```{code-cell} python3
445445beta_dist = beta(2, 2)
446446447-def gen_x_draws(k):
447+def gen_x_draws(k, rng):
448448 """
449449 Returns a flat array containing k independent draws from the
450450 distribution of X, the underlying random variable. This distribution
@@ -456,7 +456,7 @@ def gen_x_draws(k):
456456 bdraws[1, :] += 0.6
457457 bdraws[2, :] -= 1.1
458458 # Set X[i] = bdraws[j, i], where j is a random draw from {0, 1, 2}
459- js = np.random.randint(0, 2, size=k)
459+ js = rng.integers(0, 2, size=k)
460460 X = bdraws[js, np.arange(k)]
461461 # Rescale, so that the random variable is zero mean
462462 m, sigma = X.mean(), X.std()
@@ -465,11 +465,12 @@ def gen_x_draws(k):
465465nmax = 5
466466reps = 100000
467467ns = list(range(1, nmax + 1))
468+rng = np.random.default_rng()
468469469470# Form a matrix Z such that each column is reps independent draws of X
470471Z = np.empty((reps, nmax))
471472for i in range(nmax):
472- Z[:, i] = gen_x_draws(reps)
473+ Z[:, i] = gen_x_draws(reps, rng)
473474# Take cumulative sum across columns
474475S = Z.cumsum(axis=1)
475476# Multiply j-th column by sqrt j