你是如何对MA饲料集群的检测进行算法的? - 页 6

 

计算给定区间上的位价,并有一定数量的近似值。

你好,有一个数组的值。

任务是写一个函数。

输入参数。

- 该数组包含计算中位数所需元素的数量 - bufInBar[]

- 阵列大小 -bufInBar[]- count

- 中位数近似值的数量 - fokus

void medianaL0(const int &bufInBar[], int count, int fokus)

就是说,有一个类

bufInBar[i] - используется для загрузки нужного элемента при расчете медианы 

BP[bufInBar[i]].CenaPerioda; - по этому значению рассчитывается медиана
BP[bufInBar[i]].Period; 

在输出方面:

BP[bufInBar[i]].Mediana; 

按升序填写,例如从0到10。

也就是说,如果条件中fokus=10,那么 在区间i<计数的10个值中

BP[bufInBar[i]].Mediana;

将是1到10。

比如说

BP[3256].Mediana=0;
BP[6256].Mediana=1;
BP[9256].Mediana=2;
...
 
不清楚什么是重点
 
从理论上讲,中位数是一个有序数组中间的元素的值。在你的情况下,它是什么?
 
Dmitry Fedoseev:
不清楚什么是fokus
Aleksei Stepanenko:
在理论上,中位数是一个有序数组中间的元素的值。在你的情况下,它是什么?

例子。

30个MA价格值的数组,寻找有序数组的中间

我们在数组的中间得到15(L0) 的值,然后我们从L0向下和L0向上得到两个数组,并找到这些数组的中间,以此类推,直到我们得到fokus(例如七个值)。

                        --------------|--------------
                        -------|--------------|------
                        ---|-------|------|-------|--
fokus=7
| - значение цены
        

 
Mikhail Toptunov:

例子。

30个MA价格值的数组,寻找有序数组的中间

我们得到15(L0) 作为数组中间的值,然后我们从L0向下和L0向上得到两个数组,并找到这些数组的中间,以此类推,直到我们得到fokus(例如七个值)。

如果有偶数个数组元素,哪个元素将是中位数,还是应该按两个的平均数或其他方式计算?

 
Mikhail Toptunov:

例子。

我认为我们需要找到七个百分位数:12.5、25、37.5、50、62.5、75、87.5,这样的假设正确吗?

如果是这样,用有序数组中的元素数除以8(7+1),再乘以你想要的百分位数。我们得到以下元素指数。3, 7, 11, 15, 18, 22, 26.

int index=ArraySize(bufInBar)*percentile/(fokus+1);

//где percentile - номер нужного перцентиля от 1 до fokus 

double value=bufInBar[index];

对,还是我走错了路?如果是这样,这里最重要的是建立一个维护有序数组的简明机制。

 
为什么不能使用MathQuantile()?
 
Dmitry Fedoseev:

如果数组有偶数个元素,哪个元素是中位数,还是应该计算成两个元素的平均数或其他?

我认为取一个偶数的整数值比较容易。

如果有15个元素,那么中位数就是8。

 
Aleksei Stepanenko:

我的理解是否正确,我们需要找到七个百分位数:12.5,25,37.5,50,62.5,75,87.5?

如果是这样,用有序数组中的元素数除以8(7+1),再乘以所需百分数的数量。我们得到以下元素指数。3, 7, 11, 15, 18, 22, 26.

对,还是我走错了路?如果是这样,这里最重要的是建立一个维护有序数组的简明机制。

从MA值的阵列中,你需要找到整个阵列的中位数,然后是在第一个中位数之上/之下得到的阵列的中位数,等等。

 

那么看来是对的,数组第一部分的中位数是总数组的四分之一,它是25分位数。而第二部分的中位数是75百分位。

这一点。

                        --------------|---------------
                        -------|--------------|-------
                        ---|-------|------|-------|---

等于这个。

                        ---|---|---|---|---|---|---|---