From a774076061996f7ecf05e98676dcc4a36ec5433b Mon Sep 17 00:00:00 2001 From: orosmatthew Date: Mon, 5 Feb 2024 12:26:13 -0500 Subject: [PATCH] Problem 3 --- binomial_coeffs.py | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 binomial_coeffs.py diff --git a/binomial_coeffs.py b/binomial_coeffs.py new file mode 100644 index 0000000..d84b7e0 --- /dev/null +++ b/binomial_coeffs.py @@ -0,0 +1,24 @@ +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) +expect_x_sqrd = np.sum(normalized_coeffs ** 2) / len(normalized_coeffs) +std = np.sqrt(expect_x_sqrd - expect_x ** 2) +print("std", std)