Если у меня есть данные (дневной график акций - хороший пример, но это может быть что угодно), в котором я знаю только диапазон (высокий - низкий), который продается внутри X единиц, но я не знаю точной цены, данный предмет продан. Предположим для простоты, что ценовой диапазон содержит достаточное количество ведер (например, сорок один процентный шаг в радиусе 40 центов), чтобы сделать такое распределение практичным. Как я могу распределить эти элементы, чтобы сформировать нормальную кривую звонка, хранящуюся в векторе? Он не должен быть совершенным, но реалистичным.Как создать вектор, содержащий (искусственно созданный) гуасовый (нормальный) дистрибутив?
Мое (очень) наивное мышление предполагало, что, поскольку случайные числа должны формировать нормальное распределение, я могу сделать что-то вроде бинарного RNG. Если, например, есть сорок ведер, тогда, если «0» появляется в 40 раз, то 0-е ведро увеличивается, а если «1» появляется за раз в строке, то 39-й ведро увеличивается. Если «1» появляется 20 раз, то он находится в середине вектора. Сделайте это для каждого элемента до тех пор, пока не будут учтены единицы X. Это может быть или не быть правильным и в любом случае кажется более неэффективным, чем необходимо. Я ищу что-то более разумное.
Это не домашнее задание, а проблема, которая меня подталкивала, и моя статистика не до табака. Похоже, что большинство литературы анализирует распределение после того, как оно уже существует, но не так много о том, как его искусственно создать.
Я хочу написать это на C++, поэтому предварительно упакованные решения в R или Matlab или что-то не слишком полезно для меня.
Спасибо. Надеюсь, это имело смысл.
«Мое (очень) наивное мышление предполагало, что, поскольку случайные числа должны формировать нормальное распределение» - это действительно не так. Однако вы можете использовать алгоритмы для генерации значений из нормального распределения (действительно, из многих статистических распределений). – mathematician1975
Возможно ли, что то, что вы пытаетесь сделать, это создать гистограмму распределения Гаусса с частотными отсчетами для каждого буфера, сохраненного в качестве элементов вектора? – mathematician1975
Почему бы не использовать библиотеку генераторов случайных генераторов Boost? Или новая библиотека C++ 11? – templatetypedef