• + 0 comments

    Easy way to sample from categorical:

    def sample_cat(dice_probs):
        g = [-log(-log(uniform(0,1))) + log(p) for _, p in zip(range(6), dice_probs)]
        sample = g.index(max(g))
        return sample
    

    Ref: https://en.wikipedia.org/wiki/Categorical_distribution#Sampling_via_the_Gumbel_distribution