bc

bc は任意精度の数値を扱うことができる計算言語です。

LinuxMLD 7 には 伝統的な bc を拡張した GNU bc Ver.1.06 が標準インストールされています。 MLD 6 には Disc4 に Ver.1.06 が収録されていますので 追加インストールしてください。 MLD 5 では Ver.1.05a が標準インストールされます。

作者: Philip A. Nelson さん他
ホームページ: http://www.gnu.org/software/bc/bc.html
バージョン: 1.06 (2000/09/12)
ライセンス: GPL
付属ドキュメント README を読む

bc の歴史は古く、Unix Version 7 (1978) のころ、 ベル研の Lorinda Cherry さんが dc (逆ポーランド形式の任意精度計算言語) のフロントエンドとして書いたのが最初です。 GNU bc には dc も含まれていますが、 独立した別々のプログラムになっています。

使い方

対話的に使うには、ターミナルから bc で起動します。

$ bc
bc 1.06
Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.

プロンプトは何も出てきません。起動時にオプション -q を付けると、上記のメッセージも出てきません (unix の伝統的なプログラムは概ね寡黙です)。
終了は quit と入力するか、または Ctrl-D (Ctrl キーを押しながら d を打つ) です。

1 + 2      ← 入力
3          ← 出力

この例では読みやすいように 演算子の前後を空白であけていますがくっつけても構いません。

1234567890123456789 * 1234567890123456789     ← 入力
1524157875323883675019051998750190521         ← 出力

こんなに桁数が多くても計算できます。すごいでしょ。
では小数点以下の桁はどうでしょうか。

1/7
0

これを見て、bc は整数しか計算できないと思うのは早計です。 小数点以下の有効数字は特別な変数 scale で指定します。 起動時のデフォルトは 0 になっているのです。

scale=40
1/7
.1428571428571428571428571428571428571428

その他の特別な変数としては、入出力の基数を指定する ibaseobase があります。 デフォルトはどちらも 10 です。

ibase=16
BC
188

ibase は 2 から 16 までが指定可能で、数の入力には 0-9 の数字と A-F の文字 (大文字) を使います。
元の十進数の入力に戻すには、上の例ならば

ibase=A

とすることに注意してください。 obase は 16 よりも大きく指定もできます。 出力がどうなるか、やってみてください。

bc は C に似た言語ですから次のようなこともできます。

for (i=1;i<=100;i++) a+=i; a
5050

変数名は、1文字目が英字で始まる、英数字とアンダスコア (_) の列です。英字は小文字だけが使えます。 2 文字以上の名前が使えるのは GNU の拡張です。

最後に計算した値は . (ピリオド) または last で参照できます。これも GNU の拡張です。

起動時のオプションに -l (小文字の L) を 付けるとデフォルトの scale が 20 に設定され、 さらに次の数学ライブラリが使えるようになります。

   s (x)   sin (x の単位はラジアン)
   c (x)   cos (x の単位はラジアン)
   a (x)   atan (返り値の単位はラジアン)
   l (x)   log (自然対数)
   e (x)   exp (指数関数)
   j (n,x) 整数 n 次のベッセル関数

数学ライブラリの関数名が一文字なのは、伝統的な bc で変数名が英小文字一文字だった名残でしょう。

関数の定義機能を使って
define sin(x) {return s(x);}
のようにすれば「普通」の数学関数名が使えます。 こうした定義を記述したファイルを用意して、環境変数 BC_ENV_ARGS に設定しておけば bc の起動の都度読み込まれます。
環境変数の設定は例えばホームディレクトリの .bc というファイルだとして
$ export BC_ENV_ARGS="-l ${HOME}/.bc"
のようにすればよいでしょう (この例ではオプション -l を同時に指定しています)。

その他、詳しくは bc のマニュアルページを参照してください。

C に似ているとは言っても、違う点も多い (演算子の優先順位も異なる。特に代入演算子と ! に注意) です。その為か、「もっと C に似た」計算プログラムがいくつか作られています。 下の「その他のアプリケーション」を参照してください。

インストール

LinuxMLD 7 および MLD 5 では標準でインストールされています。

MLD 6 では Disc4 から bc-1.06-5.i386.rpm を追加インストールします。
rpm コマンドでインストールするには、Disc4 を マウントして、

# rpm -i /mnt/cdrom/RPMS/bc-1.06-5.i386.rpm

とします。
Gnome の GUI でインストールすることもできます。

参考

Web 上の参考になるページを御紹介します。

その他のアプリケーション

その他、 www.ibiblio.org/pub/Linux/apps/math/calc/ にいろいろあります。

ボタンをクリックするタイプの電卓は GRPNCalcoo のページを参照してください。

[2001/05/31 作成] [2003/08/26 更新]


このページに関する御意見、御要望を science@mlb.co.jp までお寄せ下さい
Copyright © 2001-2005 Media Lab. All Rights Reserved.