quantum-ps6/1.2.py
2024-02-05 12:15:00 -05:00

28 lines
788 B
Python

import numpy as np
pi_digits = np.array([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 8, 9, 7, 9, 3, 2, 3, 8, 4, 6, 2, 6, 4, 3])
# a
unique_digits, counts = np.unique(pi_digits, return_counts=True)
digit_probs = counts / len(pi_digits)
print("digit probabilities:", [(unique_digits[i], digit_probs[i]) for i in range(len(unique_digits))])
# b
most_probable_digit = np.argmax(digit_probs)
print("most probable digit:", most_probable_digit)
median_digit = np.sort(pi_digits)[len(pi_digits) // 2]
print("median digit:", median_digit)
digit_average = np.sum(pi_digits) / len(pi_digits)
print("digit average:", digit_average)
# c
expect_j_sqrd = np.sum(pi_digits ** 2) / len(pi_digits)
expect_j = np.sum(pi_digits) / len(pi_digits)
std = np.sqrt(expect_j_sqrd - expect_j ** 2)
print("std:", std)