import random
import pandas as pd
import prairielearn as pl
def generate(data):
x_events = random.randint(4, 7)
n_digits = 2
r = [float(random.randint(1, 100)) for _ in range(x_events)]
s = sum(r)
a = [round(i / s, n_digits) for i in r]
prob_sum = sum(a)
capped_sum = round(1 - prob_sum, n_digits)
if not capped_sum.is_integer():
max_val = max(a)
max_ind = a.index(max_val)
a[max_ind] += capped_sum
d = {"P(X)": a}
df = pd.DataFrame(data=d)
data["params"]["df"] = pl.to_json(df)
data["correct_answers"]["p_sum"] = sum(a)
data["correct_answers"]["big_event"] = a.index(max(a))