Design быстрый алгоритм повторно генерировать число от дискретного распределения: Дан массив а [] из неотрицательных действительных чисел этой суммы до 1, цель состоит в том, чтобы вернуть индекс г с вероятностью в [I]Алгоритм генерации случайных чисел из дискретного распределения?
Я нашел этот вопрос в онлайн-книге алгоритмов «Введение в программирование на Java», глава 4.2 «Сортировка и поиск» (http://introcs.cs.princeton.edu/java/42sort/).
намек говорит:
Форма массив с [] из сумм, накопленных таким образом, что с [I] представляет собой сумму первых г элементов а []. Теперь создайте случайное вещественное число r между 0 и 1 и используйте двоичный поиск, чтобы вернуть индекс i, для которого s [i] ≤ s [i + 1].
некоторые, как я не в состоянии понять намек и, следовательно, не могу найти решение ..
Что вы пробовали до сих пор, что не работает? Пожалуйста, разместите свой код и объясните, как он работает не так, как вы ожидали, и кто-то здесь будет рад помочь вам разобраться, как его исправить.Тем не менее, мы не просто делаем вашу работу за вас, вам нужно сделать какую-то работу, чтобы сначала попытаться понять ее. :) –
Возможный дубликат [Структура данных для загруженных кубиков?] (Http://stackoverflow.com/questions/5027757/data-structure-for-loaded-dice) – templatetypedef
Умм, поскольку 'a []' неотрицательно , 's [i] <= s [i + 1]' истинно для всех 'i'. Подсказка кажется неправильной. Я думаю, что это означает сказать, что вы должны вернуть первый 'i' такой, что' s [i]> = r'. – IVlad