from scipy.special import softmax
from scipy.stats import beta
import numpy as np

def exp_uniform_blend(n: int, alpha: float) -> list[float]:
    exp_probs = np.exp(-np.arange(n))
    exp_probs /= exp_probs.sum()
    uniform = np.ones(n) / n
    return ((1 - alpha) * exp_probs + alpha * uniform).tolist()

def beta_dist( n, a, b):
	points = np.linspace(0, 1, n + 2 )[ 1:-1] 
	probs  = beta.pdf(points, a, b)
	return probs / probs.sum()

def dirichlet_dist(n, alpha):
	return np.random.dirichlet(np.ones(n) * alpha)

def uniform_dist( n ):
	return np.ones(n) / n
