0

我有一个包含 12 条不同趋势线的图表。我想通过将所有 12 条趋势线的值相加来生成一条趋势线,如下所示:

for (i = 0, cumulativeTrendValue = 0; i < 12; ++i)
{
     cumulativeTrendValue += trendLine[i];
}

然后我将这个累积趋势线的值输入另一个函数。这很简单。但是现在我想通过为 12 条趋势线中的每一条分配 3 种不同权重中的 1 种来添加变化。例如,将通过为每条趋势线分配权重 1 来创建第一条累积趋势线;下一个将通过为第一条趋势线分配权重 2 来创建,为其余趋势线分配 1 权重,等等,令人作呕。

现在我确定之前已经在这里问过并回答了这个问题,但是我花了 2 个小时试图在 c 中找到一个实现,但找不到。(顺便说一句,这不是家庭作业,如果你想知道的话。你可以看看我过去几年的其他问题来确认这一点。)

所以,我的问题是:我可以使用哪些关键字来查找以前回答过这个问题的位置。或者,如果您今天特别乐于奉献,您能否在 SO 上提供指向问题/答案的链接。

4

1 回答 1

1

The most obvious solution to me is to add another array for the weights, to match the tredLine array.

However if you want to do it algorithmically as outlined in the question, you could have another loop outside the current, and a counter in the old inner loop that counts down. Something like this:

for (weight = 1; weight < 12; weight++)
{
    int currentWeight = weight;

    for (i = 0, cumulativeTrendValue = 0; i < 12; i++)
    {
        cumulativeTrendValue += trendLine[i] * currentWeight;

        if (currentWeight > 1)
            currentWeight--;
    }

    /* Use cumulativeTrendValue someway */
}
于 2013-02-10T17:44:39.050 回答