Как эффективно добавлять случайные числа в массив, пока не будет достигнута накопленная сумма? - PullRequest
0 голосов
/ 16 октября 2019

Каков эффективный способ добавления случайных чисел в массив до тех пор, пока кумулятивная сумма массива не достигнет порогового значения?

Мой конкретный случай заключается в том, что я хотел бы симулировать гомогенный пуассоновский процесс с заданнымставка за данный период времени. Чтобы рассчитать время «событий», я выполняю выборку из экспоненциального распределения, мне нужно продолжать выборку, пока совокупная сумма событий не достигнет порогового значения.

Спасибо!

def homogenous_poisson_process(rate, t_stop, t_start=0):
    """ Return timings of events arrising from a homogenous poisson process of a
    given rate (intensity) between a given start and stop times
    """
    beta = 1 / rate
    events = []
    last_event = 0
    while True:
        new_event = np.random.exponential(scale=beta)
        new_event += last_event
        if new_event > (t_stop - t_start):
            break
        else:
            events.append(new_event)
            last_event = new_event
    return np.array(events) + t_start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...