Участник:F.Nikitin/RandomPickWithWeight

Материал из DISCOPAL
Перейти к: навигация, поиск
import random
import bisect
from itertools import accumulate
 
 
class Solution:
    def __init__(self, w):
        self.w = list(accumulate(w))
 
    def pickIndex(self):
        target = random.randint(0, self.w[-1] - 1)
        return bisect.bisect_right(self.w, target)