LINUX.ORG.RU

История изменений

Исправление fsb4000, (текущая версия) :

Не от языка это зависит. Накидай мне на своём языке, а я попробую разобраться.

Писал на лоре, ничего не проверял, но вроде похоже на

Mn = P0 * an + ΣPi * (an - ai)
double aux(double const* p, double const* a, size_t const n)
{
  double result = 0.0;
  for (size_t i = 1; i < n; ++i)
  {
    result += p[i]*(a[n]-a[i]);
  }
  return result;
}

void  solve(size_t const n, double const* a, double const* p, double* m)
{
  for(size_t i = 1; i < n; ++i)
  {
    m[i] = p[0]*a[i] + aux(p, a, i);
  }
}

Исходная версия fsb4000, :

Не от языка это зависит. Накидай мне на своём языке, а я попробую разобраться.

Писал на лоре, ничего не проверял, но вроде похоже на

Mn = P0 * an + ΣPi * (an - ai)
double aux(double* p, double* a, size_t n)
{
  double result = 0.0;
  for (size_t i = 1; i < n; ++i)
  {
    result += p[i]*(a[n]-a[i]);
  }
  return result;
}

void  solve(size_t n, double* a, double* p, double* m)
{
  for(size_t i = 1; i < n; ++i)
  {
    m[i] = p[0]*a[i] + aux(p, a, i);
  }
}