import numpy as np import math as m def pascal(n: int) -> np.ndarray: p = np.zeros(n + 1) for i in range(n + 1): p[i] = m.factorial(n) / (m.factorial(i) * m.factorial(n - i)) return p N = 10 print("N:", N) coeffs = pascal(N) print("coefficients:", coeffs) normalized_coeffs = coeffs / 2 ** N print("normalized coefficients:", normalized_coeffs) expect_x = np.sum(normalized_coeffs) / len(normalized_coeffs) print(":", expect_x) expect_x_sqrd = np.sum(normalized_coeffs ** 2) / len(normalized_coeffs) print(":", expect_x_sqrd) sigma_x = np.sqrt(expect_x_sqrd - expect_x ** 2) print("sigma x", sigma_x)