bash中的第N个根

时间:2017-03-13 23:12:13

标签: bash shell scripting

我知道我可以用bash这样的东西得到数字的平方根:

sqrt ( $aux )" | bc

但是,我可以在bash脚本中获取浮点数的第N个根吗?

2 个答案:

答案 0 :(得分:3)

您可以使用awk并从argv读取参数。

$ awk 'BEGIN { print (ARGV[1] ** (1.0 / ARGV[2])) }' 4 5
1.31951
例如,

这将打印4的第5个根。

此处还有很多其他选项https://unix.stackexchange.com/questions/40786/how-to-do-integer-float-calculations-in-bash-or-other-languages-frameworks

答案 1 :(得分:3)

在数学中,数字x的第n个根可以写成:

n x = x (1 / n = e (ln )/ n

不幸的是,bc只允许使用整数指数,因此您无法使用x^(1/n)因此需要使用第二种形式,例如

echo "e( l(4)/5 )" | bc -l

是4的第5根。

1.31950791077289425936

或者只使用perl和x**1/n

perl -E 'say 4**(1/5)' #parentheses are needed
# 1.31950791077289