Ответы пользователя по тегу C++
  • Как написать или в каком направлении копать алгоритм на C++?

    ADR
    @ADR
    Delphi, Python, LabView, C, electronic, Qt/C++
    Алгоримт. По сути там среднеквадратическое отклонение используется.

    Только вам придется писать цикл типа:
    for count = минимальное количество данних для кореляции
        to максимальное количество данних для кореляции
      for i = 0 to length(DataArray) - count
        correlationList.append(caclCorrelation(DataArray, i, count)


    Что бы найти найболее подобною последовательность.

    Для оптимизации можно на первом этапе выбросить большую часть даних. (ака метод Монте-Карло). Обычно достаточно и 2% даних.
    А на втором этапе (когда у тебе уже будут "правильные" диапазоны) уже все даные посмотреть.

    Один из методов считания уровня ошибки это имерить в 2 разы точнее — разница межну измерениями и будет оценкой уровня ошибки.
    т. е. можна сделать алгоритм типа:
    dataCountCoeficient = 0.001 // 0.1%
    needAccuracy = 0.01 // 1%
    oldResult = calcCorrelation(dataCountCoeficient / 2);
    newResult = calcCorrelation(dataCountCoeficient)
    while Abs(oldResult - newResult) / Max(Abs(OldResult), Abs(NewResult)) > needAccuracy do
      dataCountCoeficient *= 2
      oldResult = newResult
      newResult = calcCorrelation(dataCoutCoeficient)
    Ответ написан
    Комментировать