C++. Кто знает как правильно возвести экспоненту в степень чтобы не было ошибок?

0 голосов
79 просмотров

C++. Кто знает как правильно возвести экспоненту в степень чтобы не было ошибок?


Информатика Начинающий (166 баллов)
Дан 1 ответ
0 голосов
Отличник (5.2k баллов)
 
Правильный ответ

У стандартной библиотеки плюсов с этим все хорошо. Если тебе нужна сверхточность, то придется использовать длинную арифметику и вычислять экспоненту через ряд Тейлора: image\inf" alt="e^x=1+x/1! + x^2/2! + ... + x^n/n!; n ->\inf" align="absmiddle" class="latex-formula"> либо для компьютерных вычислений гораздо эффективнее так(точность выше) e^x= \frac{1}{1-x/1!+x^2/2!-x^3/3!+...+(-1)^nx^n/n!} этот ряд быстрее сходится

оставил комментарий Начинающий (166 баллов)

#include
#include
using namespace std;

int main()
{
double z,y,f;
x=2.87;
y=0.84;
z=(2*x*y)/(x+cos(y));
f=(sin(y)*sin(y))*(sqrt(x)/(z+pow(e,2)*y));
cout <<"f=" <<f << endl;<br> return 0;
}

оставил комментарий Отличник (5.2k баллов)

а переменную е определить не хочешь?

оставил комментарий Начинающий (166 баллов)

это разве не должно быть константой?

оставил комментарий Отличник (5.2k баллов)

не такой

оставил комментарий Отличник (5.2k баллов)

открываем заголовочник math.h, находим такой кусок:#ifndef __STRICT_ANSI__
#define M_E 2.7182818284590452354
#define M_LOG2E 1.4426950408889634074
#define M_LOG10E0.43429448190325182765
#define M_LN2 0.69314718055994530942
#define M_LN10 2.30258509299404568402
#define M_PI 3.14159265358979323846
#define M_PI_2 1.57079632679489661923
#define M_PI_4 0.78539816339744830962
#define M_1_PI 0.31830988618379067154
#define M_2_PI 0.63661977236758134308
#define M_2_SQRTPI1.12837916709551257390

оставил комментарий Отличник (5.2k баллов)

Замечаем, что препроцессор видит число Эйлера немного по-другому

оставил комментарий Начинающий (166 баллов)

так а чего по-другому ?Вроде все как обычно

оставил комментарий Начинающий (166 баллов)

#define M_E2.7182818284590452354 ?

оставил комментарий Отличник (5.2k баллов)

ну да, так это же не e, а M_E

оставил комментарий Начинающий (166 баллов)

Затупил(( Спасибо!!!

...