gpt4 book ai didi

c++ - 长 double 的加权概率

转载 作者:行者123 更新时间:2023-11-30 02:00:38 25 4
gpt4 key购买 nike

我正在使用 C++ 处理大约包含 2000 个元素的数组。

每个元素代表该元素被随机选择的概率。

然后我将这个数组转换成一个累积数组,目的是使用它来计算掷骰子时选择哪个元素。

示例数组:{1,2,3,4,5}

示例累积数组:{1,3,6,10,15}

我希望在滚动数字 3、4 或 5 时能够在累积数组中选择 3。

增加的复杂性是我的数组由长 double 组成。下面是一些连续元素的示例:

0.969301615251895926463673175410562521392421331256628036499023437500.9694137725412785566714291007883730344474315643310546875000000000000.969443213829741497113839931998313659278210252523422241210937500000.969461439389266174540896181532900754973525181412696838378906250000.969500694440550095094637217396638106947648338973522186279296875000.96951751803395748961766908990966840065084397792816162109375000000

对于这个数据集,这可能是一种糟糕的加权概率方法,所以我愿意接受任何关于更好的方法来解决这个问题的建议。

最佳答案

您可以使用 partial_sum :

unsigned int SIZE = 5;
int array[SIZE] = {1,2,3,4,5};
int partials[SIZE] = {0};

partial_sum(array, array+SIZE, partials);
// partials is now {1,3,6,10,15}

你想从数组中得到的值可以从部分和中得到:

12 == array[2] + array[3] + array[4];

12 == partials[4] - partials[1];

总和显然是部分和中的最后一个值:

15 == partial[4];

关于c++ - 长 double 的加权概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14937532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com