起動

  • [ツール]→[(>_<)]→[電卓]を選択します。

もしくは、

  • M-x: calc」と入力します。

モード行に (Calc) と表示されていれば、起動成功です。

基本的な使い方

  • 「$」以降に式を書いてRETを押すと次の行に計算した値が返ります。
    <例>
    $ 1*2+3.0/4.0
    2.75
  • 文字を数字の代わりとして使うことができます。
    <例>
    $ hoge=5
    5
    $ 5*6+7
    37
    $ hoge*6+7
    37
  • 関数を定義できます。
    <例>
    $ circle(r)=r*r*3.14
    function
    $ circle(2)
    12.56
    $ C(n,m)=n!/((n-m)!*m!) 
    function 
    $ C(100,78) 
    7332066885177656269200 

使用できる演算子

+加算
-減算
*乗算
/除算
%除算の余り
^累乗
!階乗
=代入
,カンマ
(左括弧
)右括弧
\除算(整数)
~補数
<<左シフト
>>右シフト
&論理積
|論理和
`排他的論理和

数の表現

10進表現の他に、2進表現、8進表現、16進表現もできます。2進数のときは「0b」を、8進数のときは「0」を、16進数のときは「0x」を頭につけます。

2進表現0bXXXXX
8進表現0XXXXXX
10進表現XXXXXX
16進表現0xXXXX
<例>
$ 0b101
5
$ 0107
71
$ 0x10f
271
$ 0x10f - 0107 * 0b101
-84

指数マーカ(e, E)を使った浮動小数点表記も可能です。*1

$ 1/2.0e-10
5.0e9

set

出力形式などを変えます。

<例>
$ set
bits=unlimit radix=16 signed ratio=ratio
$ set radix=10
$ set
bits=unlimit radix=10 signed ratio=ratio
bits(多分整数の)計算精度数字(16,32,64)
unlimitedがんばれるだけがんばってみる
radix基数の変更数字 (2,8,10,16)を入れればよいがaliasがあるっぽい
bin2
oct8
dec10
hex16
signed符号有り
unsigned符号なし
ratio有理数(除算の計算結果)の表現(たぶん)
int整数部分だけ
ratio分数で表現
float小数で表現

用意されている定数

pi
円周率 π
e
自然対数の底 e

組み込み関数

gcd
最大公約数
lcm
最小公倍数
exp
指数関数
expt, pow
累乗
log
対数。引数は真数, の順。引数が一つの場合は自然対数を返します。
log10
常用対数
sqrt
平方根
isqrt
平方根の整数部分
abs
絶対値
sin
正弦
cos
余弦
tan
正接
asin
正弦の逆関数
acos
余弦の逆関数
atan
正接の逆関数
atan2
正接の逆関数(必ず引数が 2 つ atan2(1,2)=atan(1/2))
sinh
双曲正弦
cosh
双曲余弦
tanh
双曲正接
asinh
逆双曲正弦
acosh
逆双曲余弦
atanh
逆双曲正接
floor
引数以下かつ最大の整数
ceil, ceiling
引数以上かつ最小の整数
trunc, truncate
絶対値が小さくなるように切り捨て
round
四捨五入
rem
除算の余り
mod
modulus(法)
ffloor
引数以下かつ最大の整数(但し小数表現)
fceil, fceiling
引数以上かつ最小の整数(但し小数表現)
ftrunc, ftruncate
絶対値が小さくなるように切り捨て(但し小数表現)
fround
四捨五入(但し小数表現)
float
小数表現
int
整数表現
ratio
分数表現
complex
複素数
phase
複素数の偏角
cis
cosθ+isinθ
min
最小値
max
最大値
conjugate
共役複素数
signum, sign
符号(但し 0 のときは 0, 複素数のときは偏角が等しく絶対値が 1 の値)
realpart, real
複素数の実数成分
imagpart, imag
複素数の虚数成分
numerator, num
分子
denominator, den
分母
ash, shift
2進数表現における桁をずらす
random, rand
乱数
fibonacci, fib
フィボナッチ数
fact
階乗
sigma
総和。引数は変数,初期値,終了値,一般項の順。つまり
sigma.png
sigma(i,1,10,i*(i-1))となります。

注 三角関数の類の引数はすべてラジアン単位

注意点

  • 式を書く際、e や E といった指数マーカを使った浮動小数点表記はできません。ただし、 Lisp としてはそのような表記にも対応しているため、計算結果の出力には使われます。計算結果をコピーして次の計算に使う場合には注意してください。 0.2.2.234で修正されました。

添削よろしくです。

  • 画像いただきました。 -- 佐野 2003-05-29 (木) 23:02:41
    • なるほどこんな風にできたんですね。>画像 -- 2003-05-29 (木) 23:15:21
  • calc.lを読んでみました。まだ良くわかっていないですがかなり良い感じです。infix.lはいらなくなりました。ついでに汚いですがいくらか書き足しときました。 -- 佐野 2003-05-30 (金) 12:21:13
  • 起動から説明したほうがいいかなとか思ったので追加してみました。 -- NANRI 2003-05-30 (金) 20:03:43
  • 立派なinfoを作ってらっしゃる方がいらっしゃるようなので更新しました。間違っている所がないといいなぁ〜 -- 2005-05-20 22:46:52 (金)
  • どうでもいいですが、終了の方法とかも書くといいかもしれません…。 -- 2005-07-30 11:47:35 (土)
  • 自分はsite-initに (setq ed::*calc-ratio* 'float) と書いてます。3/2がちゃんと1.5になりますよ。 -- Deecay? 2005-07-30 14:11:10 (土)
  • calc-mode自体には終了という概念がありません。 -- NANRI 2005-07-30 20:10:09 (土)
  • 虚数計算 i=complex(0,1)と定義すると、以後(2+i)^2のように計算できて便利です。 -- T? 2006-02-06 (月) 12:51:45
  • 今気づいたのですが、平均ってないんですね。あると便利だと思ったんですけど。 -- 2006-03-13 (月) 13:53:40
  • 総和平均だけしゃくっと。
    (require "calc")
    (defun calc::average (&rest ls)
      (/ (apply #'+ ls) (length ls)))
    • 相乗平均とか難しい。 -- 佐野
  • ありがとうございます。さっそく使ってみます -- 2006-03-13 (月) 18:43:21
  • 相乗平均ってこんなんじゃありませんでしたっけ? -- NANRI 2006-03-13 (月) 19:43:38
    (require "calc")
    (defun calc::gm (&rest ls)
      (expt (apply #'* ls) (/ (length ls))))
    
    ; ついでに調和平均ってこんな?
    (defun calc::hm (&rest ls)
      (/ (length ls) (apply #'+ (mapcar #'/ ls))))


*1 xyzzy のバージョン0.2.2.234以降

添付ファイル: filesigma.png [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-08-02 (日) 18:10:36 (2791d)