Выборка из дискретного распределения вероятностей в C ++

Я новичок в C ++ и чрезвычайно удивлен отсутствием доступных, распространенных инструментов манипулирования вероятностью (то есть отсутствием вещей в Boost и стандартной библиотеке). Я много занимался научным программированием на других языках, но стандартные и / или вездесущие сторонние дополнения всегда включают в себя полный набор вероятностных инструментов. Более того, он объявил Boost эквивалентным вездесущим дополнением для C ++, но когда я читаю документацию Boost, даже кажется, что у него не хватает того, что я считаю чрезвычайно элементарными встроенными модулями.

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

Я считаю, что писать собственные функции на таком низком уровне - это плохо, но я пишу новый модуль моделирования для более крупного проекта, все на C ++. Моя обычная тактика перехода состоит в том, чтобы написать это на Python и связать Python с C ++, но поскольку нескольким людям придется управлять этим кодом, как только я закончу его, и никто из них не знает Python, я думаю, что это будет быть более разумным, чтобы доставить их всем на C ++.

В более общем плане, что люди делают в C ++ для таких вещей, как выборка из стандартных дистрибутивов, в частности, таких простых, как многовариантное нормальное распределение?

Ответы на вопрос(5)

Ваш ответ на вопрос