Я кодирую алгоритм MCMC на C, и у меня есть небольшая проблема.Идея этого алгоритма состоит в том, чтобы сделать выводы о количестве групп в популяции.Итак, допустим, мы начинаем с k групп.Где первое значение для k задается пользователем или выбирается случайным образом.Теперь на каждом шаге алгоритм k может уменьшаться на 1, увеличиваться на 1 или оставаться прежним.И у меня есть некоторые переменные для каждой группы:
double *mu;
double *lambda;
double **A
mu и лямбда действительно являются массивами из k элементов, а A является двумерным массивом из kxN.N также меняется на каждой итерации.У меня есть некоторые данные y1, y2, ..., yn, поэтому на каждой итерации я делаю какой-то процесс, предлагаю новые значения для параметров и решаю, следует ли перемещать k или нет.
Пока что я привязан к использованиюmalloc и realloc, чтобы справиться со всеми этими изменениями измерения моих параметров, но я должен повторить этот алгоритм, скажем, 100 000 раз, поэтому в определенный момент он падает.Если я начну с k = 10 в моем случае на третьей итерации!
Итак, два вопроса:
- Могу ли я использовать realloc на каждой итерации?или это моя большая ошибкаЕсли да, то я полагаю, что должен проверить мой код!
- Если нет, то что мне делать, любое предложение?