Программирование на языке Ruby.

5.19. Извлечение кубических корней, корней четвертой степени и т.д.

В Ruby встроена функция извлечения квадратного корня ( Math.sqrt), поскольку именно она применяется чаще всего. А если надо извлечь корень более высокой степени? Если вы еще не забыли математику, то эта задача не вызовет затруднений.

Можно, например, воспользоваться логарифмами. Напомним, что е в степени x — обратная функция к натуральному логарифму x и что умножение чисел эквивалентно сложению их логарифмов.

X = 531441.

Cuberoot = Math.exp(Math.log(x)/3.0)   # 81.0.

Fourthroot = Math.exp(Math.log(x)/4.0) # 27.0.

Но можно просто использовать дробные показатели степени (оператор возведения в степень принимает в качестве аргумента произвольное целое число или число с плавающей точкой).

Include Math.

Y = 4096.

Cuberoot = y**(1.0/3.0)     # 16.0.

Fourthroot = y**(1.0/4.0)   # 8.0.

Fourthroot = sqrt(sqrt(y))  # 8.0 (то же самое).

Twelfthroot = y**(1.0/12.0) # 2.0.

Отметим, что во всех примерах мы пользовались при делении числами с плавающей точкой (чтобы избежать отбрасывания дробной части).