En este post voy a explicar cómo sacar la raíz cuadrada de un número utilizando Ruby, y también explicaré cómo sacar la raíz cúbica. A partir de la raíz cúbica ya podremos sacar la raíz “cuarta” y todas las demás.
No faltará alguien experto en matemáticas diciendo que en realidad la raíz de un número es exponenciarlo y esas cosas, aquí veremos simplemente cómo hacer las cosas sin importar el término o definición formal.
Sobre los decimales
Las computadoras (sin importar el lenguaje de programación) son malas con los decimales y números flotantes, así que en este ejemplo vamos a usar BigDecimal (un módulo de Ruby) para evitar errores de cálculo.
Por dar un ejemplo, con números flotantes normales, Ruby dice que la raíz cúbica de 1331 es 10.99999 pero todos nosotros sabemos que es 11.
Así que mejor usamos BigDecimal y evitamos errores de cálculo ahora que podemos.
Raíz cuadrada de un número con Ruby
Para sacar la raíz cuadrada, casi en todos los lenguajes de programación existe el método sqrt
que quiere decir algo como square root. Pues bien, Ruby no es la excepción.
En Ruby se usa a Math.sqrt
para sacar la raíz cuadrada de un número, así:
raiz_cuadrada_de_25 = Math.sqrt(25)
Al final dejaré un ejemplo de código.
Raíz cúbica en Ruby
No hay un método llamado cubic root o algo así, pero según las matemáticas, la raíz de un número es como elevar ese número a una fracción, o mejor dicho, al resultado de una fracción.
Por ejemplo, la raíz cuadrada podría ser sacada elevando el número a 1/2 o un medio, o 0.5. Sabiendo esto, la raíz cúbica se saca así:
raiz_cubica_de_1331 = 1331 ** (1.0 / 3)
Aunque es mejor usar BigDecimal
, que devuelve un número listo para ser muy preciso. Ya veremos en el ejemplo a lo que me refiero.
Otras raíces
Sabiendo cómo es la raíz cúbica, simplemente debemos elevar un número a 1 / X en donde X es la raíz.
Ejemplo de raíz cuadrada y cúbica en Ruby
Aquí dejo un ejemplo que muestra cómo usar a Math.sqrt
así como la exponenciación con Ruby.
=begin
Raíz cúbica y raíz cuadrada de un número
en Ruby usando BigDecimal, exponenciación
y Math.pow
@author parzibyte
=end
require 'bigdecimal'
numero = 81
raiz_cuadrada = Math.sqrt(numero)
puts "La raíz cuadrada de #{numero} es #{raiz_cuadrada}"
otro_numero = 1331
# Usamos BigDecimal para que sea preciso, de otro modo, la raíz cúbica de 1331 sería 10.999999
# De ahí lo pasamos a flotante con to_f
raiz_cubica = BigDecimal.new(otro_numero) ** (1.0 / 3)
# Lo imprimimos con to_f para que no lo ponga en notación científica
puts "La raíz cúbica de #{otro_numero} es #{raiz_cubica.to_f}"
Puedes descargarlo si quieres (recuerda instalar Ruby) y ejecutarlo con ruby main.rb
Así terminamos por hoy. Lee más sobre Ruby aquí.