Учитывая серию поступающих предметов, я хочу назначить каждый из них на ведро по мере его поступления. Ведро может быть либо новым (тем, которое никогда ранее не использовалось, которого имеется бесконечное количество) или это может быть существующее ведро. Если я посмотрю на количество сегментов с одним элементом, число с двумя, число с тремя и т. Д., Я хочу, чтобы эти количества сегментов следовали экспоненциальному распределению. Надеюсь, я правильно говорю - если 80% корзин имеют 1 предмет, то 16% должны иметь две, 3,2% должны иметь три, и т. Д. В общем, количество ведер размера k должно быть 1 / p. столько, сколько количество ведер размера k-1 и доля ведер размера 1 должно быть (1-p), чтобы математика работала правильно.
Если бы я знал количество предметов заранее, это было бы легко: я бы знал, сколько ведер каждого размера, поэтому я мог бы просто складывать предметы в столько ведер каждого размера, сколько мне было нужно. Или, если бы я просто генерировал размеры сегментов, было бы легко, даже если бы я заранее не знал сумму: каждый новый сегмент имеет вероятность (1-p) размера 1, (1-p) p размера 2, (1-р) р ^ 2, размер 3, (1-р) р ^ 3, размер 4 и т. Д.
Но я обрабатываю предметов , поэтому, когда я получаю предмет, мне нужно выбрать корзину: либо существующую, либо новую. Если я сделаю новое ведро, то получу еще одно размером 1. Но если я выберу существующее размером k, то получу еще одно ведро размера k + 1 и на одно меньше размера. к. Так, какова должна быть вероятность выбора сегмента размером k (где k может быть нулем, чтобы указать создание нового сегмента)? И как это связано с р?
Я делаю это для генерации тестовых данных, в которых я знаю только среднее количество элементов в корзине (получается 1,5), заранее не знаю количества элементов и считаю, что экспоненциальное распределение размеров блоков реалистично для моей ситуации. Я, вероятно, делаю это более сложным, чем нужно, но я был удивлен, потому что думал, что это будет легко.
А может и так, но я просто что-то упускаю. (И я не могу понять, как Google это тоже.)