Корневая функция общего назначения для получения результатов в виде действительных чиселPython

Программы на Python
Ответить
Anonymous
 Корневая функция общего назначения для получения результатов в виде действительных чисел

Сообщение Anonymous »

Пытался реализовать простую корневую функцию, которая по заданным числам n и k будет возвращать корень k-й степени числа.
Изначально началось со следующего:

Код: Выделить всё

double myroot(doubl n, double k)
{
return std::pow(n, 1.0 / k);
}
Однако во многих случаях это не удается, например:

Код: Выделить всё

myroot(-125,3)     // nan - should be -5
myroot(-125,3.001) // nan - should be: -4.9973192...
Стандарт C++ определяет результат pow как nan, когда «если n конечно и отрицательно, а k конечно и нецело». Вероятно, то же самое происходит и в других языках.
Затем я начал добавлять код для обработки крайних случаев, но он очень быстро стал довольно сложным.

Вопрос: Ищем общеприменимую корневую функцию, которая будет предоставлять результаты, когда в реальной области она может возвращать nan.

Подробнее здесь: https://stackoverflow.com/questions/792 ... er-results
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»