quantum-ps6/binomial_coeffs.py

27 lines
636 B
Python
Raw Normal View History

2024-02-05 12:26:13 -05:00
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)
2024-02-07 11:17:57 -05:00
print("<x>:", expect_x)
2024-02-05 12:26:13 -05:00
expect_x_sqrd = np.sum(normalized_coeffs ** 2) / len(normalized_coeffs)
2024-02-07 11:17:57 -05:00
print("<x^2>:", expect_x_sqrd)
sigma_x = np.sqrt(expect_x_sqrd - expect_x ** 2)
print("sigma x", sigma_x)