#include
#include
#include
// Константы
const double A = 4.0;
const double B = 3.0;
double calculate_Y(double x) {
// Оптимизация: вычисляем A/B один раз
double a_div_b = A / B;
// Вычисляем логарифм
double log_term = std::log2(a_div_b);
// Вычисляем степени и выражение для Y
double term1 = std::pow(a_div_b, x);
double term2 = std::pow(a_div_b, 2 * x);
double term3 = 2 * std::pow(a_div_b, -2.0 / 3.0) * log_term;
return term1 + term2 + term3;
}
int main() {
// Множество значений X
std::vector X = {2.0, 5.0, 7.0, 10.0};
// Вычисляем Y для каждого значения X
for (double x : X) {
double Y = calculate_Y(x);
std::cout << "Y for X = " << x << " is " << Y << std::endl;
}
return 0;
}
- для контроля правильности результатов выполнить вычисления по форму-лам без использования скобочных форм и дополнительных переменных,
- проверить результаты на комбинациях заданных значений.