Каков эффективный способ добавления случайных чисел в массив до тех пор, пока кумулятивная сумма массива не достигнет порогового значения?
Мой конкретный случай заключается в том, что я хотел бы симулировать гомогенный пуассоновский процесс с заданнымставка за данный период времени. Чтобы рассчитать время «событий», я выполняю выборку из экспоненциального распределения, мне нужно продолжать выборку, пока совокупная сумма событий не достигнет порогового значения.
Спасибо!
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