LINUX.ORG.RU

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

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

Ок, ок, пусть -10<x<10, N=100. Пусть даже работа не с 4мя числами а с одним.

double superhackkiller1997_super_fail(double x){
    double xn = 1., res = 0., norm = 1.;
    for(int n=1; n<100; n++){
        norm *= n; xn *= x; res += xn/norm;
    }
    return res;
}
Хотя предполагается, что эта функция будет применяться к массиву, т.е. надо будет ее посчитать от большого числа разных х, но все они лежат в диапазоне [-10:10]. Мое решение стабильно дает 10ть знаков (для положительных х даже чуть больше, но это неважно).
х=10:   22025.4657948
x=-10: -0.99995460007
На моем стареньком Core 2Duo одно из моих решений (для обработки одного числа) занимает ~25 тактов на один вызов функции, это данные профилирования. Попробуйте обеспечить такую же точность для любого x из заданного диапазона и хотя бы не отстать.

Оченно ждем-с, думаю весь ЛОР замер в нетерпении.

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

Ок, ок, пусть -10<x<10, N=100. Пусть даже работа не с 4мя числами а с одним.

double superhackkiller1997_super_fail(double x){
    double xn = 1., res = 0., norm = 1.;
    for(int n=1; n<1000; n++){
        norm *= n; xn *= x; res += xn/norm;
    }
    return res;
}
Хотя предполагается, что эта функция будет применяться к массиву, т.е. надо будет ее посчитать от большого числа разных х, но все они лежат в диапазоне [-10:10]. Мое решение стабильно дает 10ть знаков (для положительных х даже чуть больше, но это неважно).
х=10:   22025.4657948
x=-10: -0.99995460007
На моем стареньком Core 2Duo одно из моих решений (для обработки одного числа) занимает ~25 тактов на один вызов функции, это данные профилирования. Попробуйте обеспечить такую же точность для любого x из заданного диапазона и хотя бы не отстать.

Оченно ждем-с, думаю весь ЛОР замер в нетерпении.