De vez en cuando necesito hacer algún calculo matemático durante la ejecución de un bash en linux, luego de probar varios métodos me decidí por utilizar el comando bc, que es la implementación de "Un lenguaje de calculo de precisión arbitraria."
la forma mas simple de usarlo es pasando la operación a calcula vi la entrada estándar, por ejemplo para calcula pi:
echo "scale=10; 4*a(1)" | bc -l
3.1415926532
usando la función arco-tangente se calcula pi con 10 decimales, o calcular una simple multiplicación y división
echo "scale=10; 100*12.34/23" | bc -l
53.6521739130
o generar un archivo con los pasos a calcular
scale = 20
/* Uses the fact that e^x = (e^(x/2))^2
When x is small enough, we use the series:
e^x = 1 + x + x^2/2! + x^3/3! + ...
*/
define e(x) {
auto a, d, e, f, i, m, v, z
/* Check the sign of x. */
if (x<0) {
m = 1
x = -x
}
/* Precondition x. */
z = scale;
scale = 4 + z + .44*x;
while (x > 1) {
f += 1;
x /= 2;
}
/* Initialize the variables. */
v = 1+x
a = x
d = 1
for (i=2; 1; i++) {
e = (a *= x) / (d *= i)
if (e == 0) {
if (f>0) while (f--) v = v*v;
scale = z
if (m) return (1/v);
return (v/1);
}
v += e
}
}
bc permite expresiones, loop como for, while o funciones conficionales como if
NOTA: scale indica la precisión del calculo
Espero que les sea util
Suscribirse a:
Comentarios de la entrada (Atom)
Instalación rapida de kvm manager de oracle
Para instalar kvm manager de oracle se deben seguir los siguientes pasos: Instalar Oracle Linux 7 configurar el fqdn en el archivo /etc/hos...
-
aveces es necesario aumentar el tamaño de un tablespcae, agrandando el datafile que lo compone, para esto existe 2 formas bien conocidas: ...
-
Un cliente tiene una consola de monitoreo en un windows 10, la cual tiene acceso a todas las redes. Un día necesita tomar por escritorio rem...
No hay comentarios.:
Publicar un comentario