微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何计算贝壳中的幂和根?

如何解决如何计算贝壳中的幂和根?

总的来说,我是 shell 和 linux 的初学者,这是一个 shell 算术问题,我不知道在终端中写什么来解决这三个方程。如果这似乎是一个不好的问题,我很抱歉,我尝试了 echo 命令和 expr,但它们都是错误的,并且有许多不同的错误,例如 '(' ,语法错误接近...,E0F 等等其他不幸。我希望有人能给我提供正确的命令。我感谢你的任何帮助。我会记下我使用的终端代码,这些代码我知道是错误的。

$ x=8
$ y=21
$ echo $((2*x**3 + sqrt(y/2))
bash: unexpected EOF while looking for matching ')'
bash: Syntax error: unexpected end of file
$ echo $((2*x**3) + (sqrt(y/2)))
bash: command substitution: line 1: Syntax error near unexpected token +'
bash: command substitution: line 1: `(2*x**3) + (sqrt(y/2))'
$ echo $((2*x**3)+(sqrt(y/2))
bash: unexpected EOF while looking for matching )'
bash: Syntax error: unexpected end of file
$ echo $((2*x**3)+(sqrt(y/2)))
bash: command substitution: line 1: Syntax error near unexpected token +(sqrt(y/2))'
bash: command substitution: line 1: `(2*x**3)+(sqrt(y/2))'
$ echo $((2x**3)+(sqrt(y / 2)))
bash: command substitution: line 1: Syntax error near unexpected token +(sqrt(y / 2))'
bash: command substitution: line 1: (2x**3)+(sqrt(y / 2))'

解决方法

shell 不是进行浮点计算的正确工具。它只做整数运算,不提供平方根之类的函数。

但是, bc 实用程序可以同时执行这两项操作。它是一种任意精度的十进制算术语言和计算器。

$ bc
>>> scale=5
>>> sqrt(21)
4.58257
>>> scale=19
>>> sqrt(21)
4.5825756949558400065
>>> x=8
>>> y=21
>>> x+5
13
>>> x^2
64
>>> 2*x^2 - sqrt(y/2)
124.7596296507960698846
>>> Type Control-D to exit interactive bc.
$

请务必阅读带有 man bc 的 bc 的手册页,以了解其所有功能和限制。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。