Ruby

Raíz cuadrada y raíz cúbica en Ruby

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.

Raíz cuadrada y raíz cúbica en Ruby

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í.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

Desplegar PWA creada con Vue 3, Vite y SQLite3 en Apache

Ya te enseñé cómo convertir una aplicación web de Vue 3 en una PWA. Al…

3 días hace

Arquitectura para wasm con Go, Vue 3, Pinia y Vite

En este artículo voy a documentar la arquitectura que yo utilizo al trabajar con WebAssembly…

3 días hace

Vue 3 y Vite: crear PWA (Progressive Web App)

En un artículo anterior te enseñé a crear un PWA. Al final, cualquier aplicación que…

3 días hace

Errores de Comlink y algunas soluciones

Al usar Comlink para trabajar con los workers usando JavaScript me han aparecido algunos errores…

3 días hace

Esperar promesa para inicializar Store de Pinia con Vue 3

En este artículo te voy a enseñar cómo usar un "top level await" esperando a…

3 días hace

Solución: Apache – Server unable to read htaccess file

Ayer estaba editando unos archivos que son servidos con el servidor Apache y al visitarlos…

3 días hace

Esta web usa cookies.