Тормозит функция, но причину найти не могу - C#

Узнай цену своей работы

Формулировка задачи:

Я почти понял, но... Я провел проверку, что в системе работает дольше всего. Выдало Mcode(). Смотрите рисунок, там долго инициализируется массив и очень много раз вызываются функции Mcode() и scrambler(). При этом я-то предполагаю, что scrambler вызывается 1 раз, и это меня задело - я ошибаюсь в чем-то. Строчка string B_sc = scrambler(BinData[itmr - 1]); показывает, что на scrambler(), по-идее, приходит сразу строка, ведь itmr-1 - это такт циклической работы программы, у меня всего прошло только 2 таких такта. А на рисунке можете видеть сумасшедшие числа: 43200. Код:
////////////////Генерация М-последовательности для любого информационного бита////////////////
bool[] Mcode()
{
    bool[] x = { false, false, false, false, false, false, false, true, false, true, false, true, false, false, true }; // начальная комбинация
    bool[] Mcod = new bool[NProc * NbitIn1OFDM]; // если 4*450, то будет 1800
    for (int ii = 0; ii < NProc * NbitIn1OFDM; ii++)
    {
        Mcod[ii] = x[14];
        bool buf = x[13] ^ x[14];                     //Циклический сдвиг на 1 бит вправо
        for (int i = 14; i > 0; i--) { x[i] = x[i - 1]; }
        x[0] = buf;
    }
    return Mcod;
}
 
///////////////////////////////////////Скремблер////////////////////////////////////////////
string scrambler(string X)
{
    bool[] Mcod = new bool[NProc * NbitIn1OFDM]; string Y = "";
    for (int i = 0; i < X.Length; i++)
    {
        Mcod = Mcode();
        int bin_mes_cur = int.Parse(X[i].ToString());
        int Mcod_cur = Convert.ToInt16(Mcod[i]);
        int Bsc_cur = bin_mes_cur ^ Mcod_cur;
        Y += Bsc_cur.ToString();
        list.Add(i, X[i]);
        listSC.Add(i, Bsc_cur);
    }
    return Y;
}
Как можно оптимизировать?

Решение задачи: «Тормозит функция, но причину найти не могу»

textual
Листинг программы
Y += Bsc_cur.ToString();

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4 из 5
Похожие ответы