Linux互換のTTYベースの計算機を探しています。例えば:
user@host:~$ calculate
> 2
2
user@host:~$ calculate
> 8*6-4
44
user@host:~$ calculate
> 8*(6-4)
16
基本的な操作、などの一部の組み込み関数atan()
、およびスクリプトによるカスタム関数をサポートするこのようなものはありますか?
Linux互換のTTYベースの計算機を探しています。例えば:
user@host:~$ calculate
> 2
2
user@host:~$ calculate
> 8*6-4
44
user@host:~$ calculate
> 8*(6-4)
16
基本的な操作、などの一部の組み込み関数atan()
、およびスクリプトによるカスタム関数をサポートするこのようなものはありますか?
回答:
bc
そしてdc
、端末からのアクセスを必要とするとき、私は頻繁に使用しますという2つの電卓です。
$ bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
次に、質問を入力します。
2
2
5+5
10
完了したら、Ctrl+を使用して外に出ることができますC。
これらの計算機はかなり機能が豊富です。
スケーリング
scale=5
193 * 1/3
64.33333
方程式
principal=100
ir = 0.05
years = 5
futurevalue = principal * (1 + ir)^years
futurevalue
127.62800
あなたの例
8*6-4
44
8*(6-4)
16
もう少しインタラクティブなものが必要な場合は、がありcalc
ます。
$ calc
C-style arbitrary precision calculator (version 2.12.4.4)
Calc is open software. For license details type: help copyright
[Type "exit" to exit, or "help" for help.]
; 10+10
20
; 8*6-4
44
; 8*(6-4)
16
;
上/下矢印を使用して、過去のコマンドに移動できます。また、インタラクティブなヘルプもあります。
; help
これを与える:
For more information while running calc, type help followed by one of the
following topics:
topic description
----- -----------
intro introduction to calc
overview overview of calc
help this file
assoc using associations
builtin builtin functions
command top level commands
config configuration parameters
custom information about the custom builtin interface
define how to define functions
environment how environment variables effect calc
errorcodes calc generated error codes
expression expression sequences
file using files
history command history
interrupt how interrupts are handled
list using lists
mat using matrices
...
calc
のメインリファレンスページcalc
のmanページあなたの質問には多くの答えがあります...
シェルで実行できる単純なもの。
$ echo $((8*(6-4)))
16
専用プログラムとしてがありbc
ます。
$ echo "8*(6-4)" | bc
16
スクリプトによるカスタム関数?まあ、ある意味では、シェルスクリプトとbcの両方にそれらがあります。あなたがそれを取りたいどのくらい遠くに依存します。
なぜPythonではないのですか?学ぶのは簡単です。
$ python
>>> from math import atan
>>> 8*(6-4)+atan(0)
16.0
でzsh
:
$ autoload zcalc # best in ~/.zshrc
$ zcalc
1> 8*(6-4)
16
2> $1*2
32
L(t):= exp(%i * t * 2 *%pi); / *ターンの角度でパラメータ化された単位円* / plot2d( [atan2(imagpart(L(x))、realpart(L(x)))]、 [x、0,1]、 [y、-2 *%pi、2 *%pi]、 [plot_format、gnuplot]、 [gnuplot_term、 "png"]、 [gnuplot_out_file、 "atan2.png"]、 [凡例、「atan2」]、 [xlabel、 "angle in radians"]、 [ylabel、 "angle in radians"]、 [gnuplot_preamble、」 キーを左上に設定します。 xticsを設定( 'pi / 2' 0.25、 'pi' 0.5、 '3pi / 2' 0.75、 '2pi' 1.0); yticsを設定します( '-2pi' -6.283、 '-pi' -3.1415、 '-pi / 2' -1.5708、 '0' 0、 'pi / 2' 1.5708、 'pi' 3.1415、 '2pi' 6.283); グリッドxtics yticsを設定します "] );
HTH
ここでは、コマンドラインで直接簡単な演算を実行できるようにする小さなbashハックを示します。
alias calc='set -o noglob; docalc'
function docalc { perl -e "print STDOUT $*, \"\\n\""; set +o noglob; }
そうすれば、例えば、
calc 3 * 15 + 5
残念ながら、括弧はうまく機能しません。(私が正しく思い出せば、tcshでもそれらを受け入れることができますが、bashを説得できませんでした。)
PS。perl
呼び出しをで置き換えることにより、演算をbashに依存できecho $(( $* ))
ます。しかし、これはの整数除算5/6
などを提供します。Perlの算術はより便利です。
代替案: Pythonを使用した唯一の牛肉が必要な場合import math
は、以下があなたの友達です:
% alias calc='python -i -c "from math import *"'
% calc
>>> 5 * atan(0.25)
もう1つの方法は、Python 3のようなインタープリターを使用することです。
$ python3
> from math import *
> 213/53*exp(0.8)/asin(3)
9.645423462356044
すべてをスクリプト化できるという利点があり、すでに多くの関数があり(cmath
複素数が必要な場合はインポートすることもできます)、ほとんどの場合、精度を設定する必要がなく、PythonはほとんどのLinuxインストールに既にインストールされています。
結果がintでない場合、Python 3.xは浮動小数点除算を行うため、Python 3.xはPython 2.xよりも一般的な計算機に適しています。
$ python3
> 3/2
1.5
$ python2
> 3/2
1
少なくとも私にとっての主な欠点は、書式文字列がなければ、浮動小数点数が非常に大きくも小さくもない場合、科学表記では印刷されないことです。
> exp(35)
1586013452313430.8
> "{:e}".format(exp(35))
'1.586013e+15'