google電卓リファレンス


(この内容は2006年2月現在、すでに古くなっています。新しいgoogle電卓はバグが修正され、日本語への対応などが強化されています。単位や定数も増えていて、現相場の為替換算なども出来るようになっています。またそのうち時間を作って調査・更新の予定……。)

はじめに

google電卓(あるいは、google計算器、google計算機、google calculator)は2003年の後半にgoogleに搭載された機能の一つです。 これはgoogleの検索フォームに計算式を入力すると、検索結果かわりに計算結果が返ってくるというもの。 どう考えてもトラフィックとCPUの無駄遣いとしか思えないのですが、そこはgoogleのことですから何か考えがあってのことなのでしょう。 いやもしかしたらgoogleのことだから何も考えていないのかも。
ともあれ、このgoogle電卓、非常に強力です。 四則演算に加えて三角関数、双曲線関数、対数関数が利用でき、階乗計算にも対応しています。 さらに16、8、2進数の相互変換、単位付きの計算、物理定数を使った計算にも対応しており、 たとえば0x1000kmは何マイル?といった計算も出来てしまいます。
が、ひとつだけ致命的な欠陥があります。 説明書がないことです。 一応、googleのヘルプページには、基本的な操作方法は載っています。 しかしどんな関数が使えるのか、どんな単位が使えるのか、といった部分はまったく記載がありません。 この点、リファレンスマニュアル好きの私としては、納得がいきません。
このページはそんなgoogle電卓のリファレンスマニュアルです。 大いなる無駄でありながら一級品、しかもその全貌は闇のかなた。 こんな面白いものはありません。 どうぞこのページを見て、google電卓を使い倒してください。

google電卓の使い方

基本

検索フォームに計算式を直接入力すると、その結果が表示されます。
1+1
10進数の入力には指数表現が使えます。 また、10進法以外の進法で値を入力することもできます。 このときには、進法を示す適当なプレフィックスをつけます。
数には複素数を使うことが出来ます。虚数単位はiを使います。

次元

google電卓は次元付きの計算ができます。 すなわち、単位付きの数を使って、単位付きの演算をすることができます。 数の後ろに単位を書くと、それは単位付きの数になります。 数と単位の間にはスペースを含めても構いません。 この計算結果は1m/sになります。
計算した結果、組み立て単位を作ることができる場合は、自動的に組み立て単位に変換されます。 この計算結果は1Wattになります。

単位換算

計算結果を任意の単位で得るためには、式の最後に in 単位式 の形で単位を指定します。 次の例は、1m/sの速度をノット単位に変換して表示します。 次の例は、1m/sの速度をマイル毎時の単位に変換して表示します。 ちなみに、inの代わりにtoを使っても良いようです。

表記法の変換

結果が無次元の数になる場合は、進法を変更して表示したり、ローマ数字や英語表記で表示したりすることができます。 表記法を変換するには、in 形式 の形で単位を指定します。

構文

これまでに述べてきたことをまとめると、google電卓の記述の基本構文は、次の形式となります。
計算式 in 単位式
10 byte in bits
ここで、「計算式」と「単位式」を定義しておきましょう。 これはこのリファレンスで勝手に定義する概念ですが、 google内部では明らかにこれらが区別されていると考えられます。
まず、計算式とは、数、単位、定数、演算子および関数で構成された式のことです。 必ずしもこれら全てを含んでいる必要はなく、たとえば「10」のような数だけでも、それは計算式です。
一方、単位式は、単位、乗算演算子、除算演算子、べき乗演算子のみで構成された式のことです。 数や定数、関数等を含むとそれは計算式となります。
明らかに単位式は計算式に含まれます。 すなわち、単位式はみな計算式でもあります。
で、話を元に戻すと、google電卓は計算式を先に記述し、必要なら単位式をあとに付加する、という形式で式を入力しますが、逆に、単位式を先に出す記述法もあるのです。 それがhow many構文です。これは次の形式で書かれます。 好みなら、末端に?をつけても構いません。
how many 単位式 in 計算式
how many bits in 10 bytes ?
how many構文とは言いましたが、じつはhow manyは省略でき、次のように記述してもgoogle電卓は認識します。
単位式 in 計算式
ただしこれは、どちらが単位式でどちらが計算式かが明らかな場合に限ります。 これが曖昧な場合はちょっと問題は複雑になります。 この詳しい取り扱いは、bit inside google calculatorの項で扱います。

計算を強制する

先述の通り、単位式はそれだけで計算式になり得ます。 要するに、単位だけを書いてgoogle電卓に渡しても、結果を表示してくれます。
ただし、たとえば「minute」とだけ書いても計算してくれません。 googleはそれを検索ワードだと思ってしまうからです。 googleに対してgoogle電卓で計算することを強制するには、末尾に「=」を付けます。

定数と単位

定数は、あらかじめ設定された数、または単位付きの数で、名前が付いています。 単位は、数と組み合わせて単位付きの数を作るもので、名前が付いています。 定数や単位の名前はアルファベットの単語または句です。 一つの定数や単位に、複数の名前がついていることもあります。
次の二つはどちらも真空中の光速度を表す定数です。 定数や単位の名前は、演算子よりも優先されます。 よって、たとえば地球の質量×光速度の二乗を計算する場合は次のように記述できます。
一見して、定数と単位の区別は難しいのですが、google電卓内部では明らかに区別されています。 定数と単位の判別方法については、bit inside google calculatorの項で取り扱います。

数の表現

google電卓は、様々な形態での数の入力を受け入れます。 通常の十進表記の他、十六進数で入力したり、ローマ数字で入力したりすることもできます。 入力方法は大きく分けて、次の3種類です。 ここで、数値には十進数、十六進数、八進数、二進数を含みます。

数値

基本的な入力方法が数値での入力です。 特別な接頭語がないかぎり、数は十進数として認識されますが、接頭語を付けることにより異なった進法で数を入力することができます。 単位なしの場合、計算結果は入力した進法で出力されます。 進法が混在している場合は、先に出現したほうが優先されます。 十進数の場合に限り、値を3桁ごとにカンマで区切る表記が使えます。 ただし、正しくない位置にカンマがある場合は認識されなくなってしまうので注意してください。 また、十進数の場合に限り、指数表現が可能です。

ローマ数字

google電卓では、恐るべきコトに、ローマ数字での入力ができます。 ローマ数字で入力する場合には、ローマ数字を全て大文字で記述してください。 ローマ数字で入力した場合は、結果もやはりローマ数字となります。 ローマ数字で表現できる数には制限があります。 4999より大きい数や、整数ではない数は表現できません。

言葉

google電卓では、さらに恐るべきコトに、言葉での入力ができます。 すなわち、数の英語表現を数として認識します。 英語表現の解釈は、定数と単位の解釈の次に優先されて行われるようです。 よって、演算子を作用させる際に、名前を括弧で囲む必要はありません。 次の二つの例では、それぞれの中のandの意味が違っており、前者は数の英語表現の中で使われるandで、後者は加算演算子としてのandです。 演算の順番が違っていることに注意してください。

制限事項

google電卓の内部精度はdoubleです。
どの単位も整数乗ではない単位を含むことができません。 途中の計算で整数乗ではない単位が出現してもいけません。 うーん、これじゃあ、破壊靭性値の計算ができませんね:P。

リファレンス

数の表現

0x〜
〜を十六進数として解釈します。
0o〜
〜を八進数として解釈します。
0b〜
〜を二進数として解釈します。
十進数の場合、数の入力に指数表現が使えます。
xEy
x×10のy乗を表現します。

演算子

単位式に使える演算子は乗除算とべき乗だけです。 それ以外の演算子を含む式は計算式になります。
x * y, x times y, x multiplied by y
乗算演算子です。xにyを掛けた結果を返します。
x / y, x over y, x per y, x divided by y
除算演算子です。xをyで割った結果を返します。
x^y, x**y, x to the power of y, x to the y th power
xのy乗を返します。 最後の形式では、yは序数でなくてもよく、powerも省略できます。。 また、yの値にかかわらず、thをstやndで置き換えることができます。
x squared
xの二乗を返します。
x cubed
xの三乗を返します。
下記の演算子は、単位式には使えません。
x + y, x plus y, x and y
加算演算子です。xにyを足した結果を返します。
x - y, x minus y
減算演算子です。xからyを引いた結果を返します。
x!
xの階乗を返します。
x%
xの1/100を返します。
x mod y, x modulo y
xをyで割った余りを返します。
x th root of y
yのx乗根を返します。xの値にかかわらず、thの代わりにrdやstを使うこともできます。
x % of y, x percent of y
yのxパーセントを返します。
x choose y
x個のものからy個のものを選ぶときの組み合わせの数を返します。 これはx!/(x! * (x-y)!)と同義です。

関数

関数はいずれも、括弧を省略することができます。 また、〜 of xという形式で、ofを挿入しても同様に使えます。

三角関数

sin(x), sine(x)
xのサインを返します。
cos(x), cosine(x)
xのコサインを返します。
tan(x), tangent(x)
xのタンジェントを返します。
sec(x), secant(x)
xのセカントを返します。
csc(x), cosecant(x)
xのコセカントを返します。
ctan(x), cotangent(x)
xのコタンジェントを返します。
asin(x), arcsin(x), arcsine(x)
xのアークサインを返します。
acos(x), arccos(x), arccosine(x)
xのアークコサインを返します。
atan(x), arctan(x), arctangent(x)
xのアークタンジェントを返します。
asec(x), arcsec(x), arcsecant(x)
xのアークセカントを返します。
acsc(x), arccsc(x), arccosecant(x)
xのアークコセカントを返します。
arccotangent(x)
xのアークコタンジェントを返します。

双曲線関数

sinh(x), hyperbolic sin(x), hyperbolic sine(x)
xのハイパボリックサインを返します。
cosh(x), hyperbolic cos(x), hyperbolic cosine(x)
xのハイパボリックコサインを返します。
tanh(x), hyperbolic tan(x), hyperbolic tangent(x)
xのハイパボリックタンジェントを返します。

指数関数・対数関数

exp(x)
自然対数底eのx乗を返します。
ln(x), natural log(x)
xの自然対数を返します。
log(x), logarithm(x)
xの常用対数を返します。
lg(x)
xの2を底とする対数を返します。
sqr(x), sqrt(x), square root(x)
xの平方根を返します。

定数

まずは無次元の数学的な定数から紹介しましょう。
i
虚数単位。
e
自然対数の底。
pi
円周率。
次に示すのは、物理定数のような、次元を持った定数です。
c, the speed of light, the speed of light in a vaccum
真空中の光速度。
R, the molar gas constant
気体定数。
k, Boltzmann constant
ボルツマン定数。
h, Planck's constant, Planck constant
プランク定数。
G, gravitational constant, Newtonian constant of gravitation
万有引力定数。
N_A, Avogadro's constant, Avogadro constant
アボガドロ定数。mol^(-1)の次元を持つ。constantのcは小文字。
Avogadro's number
アボガドロ数。無次元。Avobadro numberはない。
Rydberg constant
リュードベリ定数。
Faraday constant
ファラデー定数。
Stefan-Boltzmann constant, the Stefan Boltzmann constant
ステファン・ボルツマンの定数。
conductance quantum
conductance quantum。
magnetic flux quantum
磁束量子。
e_0, epsilon_0, electric constant
真空の誘電率。
mu_0, the magnetic constant, permeability of free space
真空の透磁率。
m_u, atomic mass constant
原子質量定数。 相当する単位として、atomic mass unitがある。
m_p, proton mass
陽子の質量。
m_e, m_electron, electron mass
電子の質量。
elementary charge
電荷素量。
speed of sound at sea level, speed of sound
空気中の音速。
gamma, Euler's constant, Eular constant
オイラーの定数。
g_earth, gravity on earth
地表の重力加速度。
fine-structure constant
微細構造定数。
太陽系。
radius of sun, r_sun
太陽の半径。 定冠詞theをつけてもよい。
radius of earth, r_earth
地球の半径。 定冠詞theをつけてもよい。
radius of moon, r_moon
月の半径。 定冠詞theをつけてもよい。
radius of Mercury, r_Mercury
水星の半径。
radius of Venus, r_Venus
金星の半径。
radius of Mars, r_Mars
火星の半径。
radius of Jupiter, r_Jupiter
木星の半径。
radius of Saturn, r_Saturn
土星の半径。
radius of Uranus, r_Uranus
天王星の半径。
radius of Neptune, r_Neptune
海王星の半径。
radius of Pluto, r_Pluto
冥王星の半径。
mass of sun, m_sun
太陽の質量。 定冠詞theをつけてもよい。 sunは小文字でなければならない。 相当する単位として、solar massがある。
mass of earth, m_earth
地球の質量。 定冠詞theをつけてもよい。 earthは小文字でなければならない。 相当する単位として、earth massがある。
mass of the moon, m_moon
月の質量。 必ず定冠詞が必要である。 moonは小文字でなければならない。 相当する単位として、lunar massがある。
mass of Mercury, m_Mercury
水星の質量。
mass of Venus, m_Venus
金星の質量。
mass of Mars, m_Mars
火星の質量。
mass of Jupiter, m_Jupiter
木星の質量。
mass of Saturn, m_Saturn
土星の質量。
mass of Uranus, m_Uranus
天王星の質量。
mass of Pluto, m_Pluto
mass of Planckが表示される?
こんなのも。
phi, the golden ratio
黄金比。
the answer to life the universe and everything
生命、宇宙、全てのものに対する解答。
once in a blue moon
1ヶ月に2回満月になるような月が到来する周期。 それに匹敵するぐらい、滅多にない、という意味の成句。

単位

数に続いて単位を記述することで、単位付きの数を作ることができます。 単位はすべて定数としても使うことができます。

時間

year, month, week, day, hour, minute
一年、一ヶ月、一週間、一日、一時間の時間です。
s, sec, second
一秒の時間です。secondには任意の補助単位を付けることができます。
ms, ns
それぞれmillisecond、nanosecondと同義です。
fortnight
二週間の時間です。
decade
十年間の時間です。
century
一世紀、百年間の時間です。
millenium
一千年紀、千年間の時間です。
sidereal day
一恒星日の時間です。
lunar cycle
太陰周期の時間です。

長さ

m, meter
一メートルの長さです。meterには任意の補助単位を付けることができます
km, cm, mm, nm, pm
それぞれkilometer, centimeter, millimeter, nanometer, picometerと同義です。
in, inch
一インチの長さです。
ft, foot, feet
一フィートの長さです。12インチが1フィート。
yd, yard
一ヤードの長さです。3フィートが1ヤード。
mi, mile
一マイルの長さです。1760ヤードが1マイル。
furlong
一ハロンの長さです。220ヤードが1ハロン。8ハロンが1マイル。
fathom
一ファゾムの長さです。6フィートが1ファゾム。
rod
一ロッドの長さです。5.5ヤードが1ロッド。
cubit
一キュビトの長さです。1.5フィートが一キュビト。
nautical mile
一海里の長さです。1852メートルが1海里。
league
一リーグの長さです。3海里が1リーグ。
Smoot
Oliver Smootの身長です。5フィート7インチ。
pica, PostScript pica
一パイカの長さです。1パイカは1/12ポイント。
point, PostScript point
一ポイントの長さです。1ポイントは1/72インチ。
micron
一ミクロンの長さです。0.001mmが1ミクロン。
angstrom
一オングストローム(Å)の長さです。0.1nmが1Å。 aは必ず小文字で。
marathon
マラソンで走る長さです。
light year, lightyear
一光年の長さです。
light day, lightday
一光日の長さです。
light hour, lighthour
一光時の長さです。
light minute, lightminute
一光分の長さです。
light second, lightsecond
一光秒の長さです。
au, Astronomical Unit
一宇宙単位の長さです。地球と太陽の平均距離。
pc, Parsec
一パーセクの長さです。Parsecには任意の補助単位を付けることができます。

面積

square 〜, sq. 〜
〜の二乗の面積です。 〜には任意の長さ単位を使うことができます。
are
一アールの面積です。
ha, hectare
一ヘクタールの面積です。
acre
一エーカーの面積です。43560平方フィートが1エーカー。

体積

cubic 〜, cu. 〜
〜三乗の体積です。 〜には任意の長さ単位を使うことができます。
l, liter
一リットルの体積です。
cc, ml
milliliterと同義です。
gal, gallon, US gallon
一米ガロンの体積です。
UK gallon, Imperial gallon
一英ガロンの体積です。
quart, US quart
一米クォートの体積です。4クォートで1ガロン。
UK quart, Imperial quart
一英クォートの体積です。
pint, US pint
一米パイントの体積です。2パイントで1クォート。
UK pint, Imperial pint
一英パイントの体積です。
cup, US cup
一米カップの体積です。2カップで1米パイント。 UK cup, Imperial cupはありません。
tablespoon, US tablespoon
米スプーン一さじの体積です。スプーン16さじで1カップ。
Imperial tablespoon, UK tablespoon
英スプーン一さじの体積です。
teaspoon, US teaspoon
米ティースプーン一さじの体積です。ティースプーン3さじで1スプーン。
Imperial teaspoon, UK teaspoon
英ティースプーン一さじの体積です。米の約1.2倍:P。
fluid ounce, US fluid ounce, ounce, oz
1米流体オンスの体積です。ティースプーン6さじで1流体オンス。 ounceとozは文脈上、質量のオンスと混同しないときのみ使えます。 通常は、質量として認識されます。
Imperial fluid ounce, UK fluid ounce
1英流体オンスの体積です。
peck, US peck
一米ペックの体積です。
UK peck, Imperial peck
一英ペックの体積です。
bushel, US bushel
一米ブッシェルの体積です。4ペックが1ブッシェル。
UK bushel, Imperial bushel
一英ブッシェルの体積です。

速度

mph
一時間あたり何マイルの速度です。miles per hourと同義です。
knot
一ノットの速度です。
mach x
これは単位ではなく、関数です。マッハxの速度を返します。

質量

g, gram
一グラムの質量です。gramには任意の補助単位を付けることができます。
kg, mg
それぞれkilogram, milligramと同義です。
metric ton, tonne
一メートルトンの質量です。1メートルトン=1000キログラム。
ton
一トンの質量です。1トン=2000ポンド。
long ton
一大トンの質量です。1大トン=2240ポンド。
short ton
一小トンの質量です。1小トン=2000ポンド。
lb, pound
一ポンドの質量です。
oz, ounce
一オンスの質量です。16オンスが1ポンド。
dram
一ドラムの質量です。16ドラムが1オンス。
grain
一グレインの質量です。7000グレインが1ポンド。
stone
一ストーンの質量です。14ポンドが1ストーン。
carat
一カラットの質量です。
pennyweight
一ペニーウェイトの質量です。
slug
一スラグの質量です。
earth mass
地球の質量です。
solar mass
太陽の質量です。
lunar mass
月の質量です。
u, amu, atomic mass unit
原子質量単位。

N, Newton
一ニュートンの力です。Newtonには任意の補助単位を付けることができます。
kilogram force
一キログラム重の力です。
dyne
一ダインの力です。

圧力

Pa, Pascal
一パスカルの圧力です。Pascalには任意の補助単位を付けることができます。
nPa, mPa, cPa, kPa, MPa, GPa
それぞれnanoPascal, milliPascal, centiPascal, kiloPascal, megaPascal, gigaPascalと同義です。Kは大文字でも小文字でもokです。
bar
一バールの圧力です。1バールが100000パスカル
mbar, millibar
一ミリバールの圧力です。1ミリバールが1ヘクトパスカル。
torr
一トルの圧力です。760トルが1気圧。
atm, atmosphere
一気圧の圧力です。1013.25ヘクトパスカルが1気圧。
psi
一平方インチあたり一ポンドの圧力です。pound per square inchと同義です。

仕事・エネルギー

J, Joule
一ジュールのエネルギーです。Jouleには任意の補助単位を付けることができます。
kJ
kilojouleと同義です。kは大文字でも小文字でもOKです。
cal, calorie
一カロリーのエネルギーです。caloriesには任意の補助単位を付けることができます。
kcal, Calorie
kilocalorieと同義です。
eV, electron volt
一電子ボルトのエネルギーです。electron voltには任意の補助単位を付けることができます。
peV, neV, keV, MeV, GeV, TeV
それぞれpicoelectron volt, nanoelectron volt, kiloelectron volt, megaelectron volt, gigaelectron volt, teraelectron voltと同義です。 Kは大文字でも小文字でもOKです。
erg
一エルグのエネルギーです。
btu, British thermal unit
一英熱量単位のエネルギーです。

仕事率

W, Watt
一ワットの仕事率です。
kW, MW, GW
それぞれkilowatt, megawatt, gigawattと同義です。kは大文字でも小文字でもokです。
hp, horsepower
一馬力の仕事率です。

温度

K, Kelvin
一ケルビンの温度です。
degree C, degree Celsius, Celsius, centigrade, degree centigrade, C
セ氏の温度です。 文脈上、紛らわしくない場合のみCを使えます。 そうでない場合、Cはクーロンとして認識されます。
degree F, degree Fahrenheit, Fahrenheit
華氏の温度です。 文脈上、紛らわしくない場合のみFを使えます。 そうでない場合、Fはファラドとして認識されます。

光束・照度

lm, lumen
一ルーメンの光束です。lumenには任意の補助単位を付けることができます。
cd, candela
一カンデラの光束です。candelaには任意の補助単位を付けることができます。
lx, lux
一ルクスの照度です。luxには任意の補助単位を付けることができます。

電磁気

A, Ampere
一アンペアの電流です。Ampereには任意の補助単位を付けることができます。
V, Volt
一ボルトの電圧です。Voltには任意の補助単位を付けることができます。
Ohm
一オームの抵抗です。任意の補助単位を付けることができます。
C, Coulomb
一クーロンの電荷です。Coulombには任意の補助単位を付けることができます。
F, Farad
一ファラッドの電気容量です。Faradには任意の補助単位を付けることができます。
H, Henry
一ヘンリーのインダクタンスです。Henryには任意の補助単位を付けることができます。
S, Siemens
一ジーメンスのコンダクタンスです。Siemensには任意の補助単位を付けることができます。
Wb, Weber
一ウェーバーの磁束です。Weberには任意の補助単位を付けることができます。
T, Tesla
一テスラの磁束密度です。Teslaには任意の補助単位を付けることができます。
gauss
一ガウスの磁束密度です。1ガウスは0.0001テスラ。任意の補助単位を付けることができます。gaussのgは小文字です。

周波数

Hz, hertz
一ヘルツの周波数です。hertzには任意の補助単位を付けることができます。
kHz, MHz, GHz, THz
それぞれkilohertz, megahertz, gigahertz, terahertzと同義です。kは大文字でも小文字でもokです。

放射線・放射能

Bq, Becquerel
一ベクレルの崩壊周期です。Becquerelには任意の補助単位を付けることができます。
Sv, Sievert
一シーベルトの線量当量です。Sievertには任意の補助単位を付けることができます。
Gy, gray
一グレイの吸収線量です。grayには任意の補助単位を付けることができます。grayのgは小文字です。
rad
一ラドの吸収線量です。1ラド=0.01グレイです。
rem
一レムの吸収線量です。1レム=0.01グレイです。

データ量

byte
一バイトのデータ量です。kilo以上の補助単位を付けることができます。 慣例に従い、1 kilobyte = 1024 byteです。
bit
8 bit = 1 byteと定義されています。kilo以上の補助単位を付けることができます。
nibble, nybble
4 bit = 1 nibbleと定義されています。
KB, MB, GB, TB, PB
それぞれkilobyte, megabyte, gigabyte, terabyte, petabyteと同義です。Kは大文字でも小文字でもokです。
Kb, Mb, Gb, Tb, Pb
それぞれkilobit, megabit, gigabit, terabit, petabitと同義です。Kは大文字でも小文字でもokです。
kibibyte, mebibyte, gibibyte
それぞれkilobyte, megabyte, gigabyteと同義です。
bps, Kbps, Mbps, Gbps, Tbps, Pbps, Ebps, Zbps, Ybps
bpsはビット毎秒のデータ転送速度で、bits per secondと同義です。 以下、キロ、メガ、ギガ、テラ、ペタ、エキサ、ゼタ、ヨタビット毎秒のデータ転送速度です。
Bps, KBps, MBps, GBps, TBps, PBps, EBps, ZBps, YBps
Bpsはバイト毎秒のデータ転送速度で、bytes per secondと同義です。 以下、キロ、メガ、ギガ、テラ、ペタ、エキサ、ゼタ、ヨタバイト毎秒のデータ転送速度です。

角度

角度は基本的に、無次元と考えて良いと思われます。 無次元の数に対してin 〜でこれらの単位に変換することができます。
radian
ラジアン角度です。
degree
度の角度です。 1 degreeはpi/180です。
arcminute, minute
分の角度です。60分が1度。 文脈上、時間の分と混同されない場合のみ、角度の表現にminuteが使えます。
arcsecond, second
秒の角度です。60秒が1分。 文脈上、時間の秒と混同されない場合のみ、角度の表現にsecondが使えます。

個数

個数は基本的に、無次元と考えて良いと思われます。 無次元の数に対してin 〜でこれらの単位に変換することができます。
unit
無次元の単位です。
mol, mole
一モルの個数です。

補助単位

補助単位を単位の先頭に付加することてで、単位を何倍かした単位を作成できます。 補助単位と単位の間にスペースを含めてはいけません。 google電卓は補助単位だけで計算することはできません。 たとえば、1mega/1gigaなどは不正です。
補助単位をつけることの出来る単位は限られています。 時間の単位であるsecondには全ての補助単位を付けることができますが、yearには付けることができません。 また、データ量の単位であるbyteには、yottaからkiloまでは付けることができますが、hectoより下は付けることができません。
yotta
10の24乗を表します。
zetta
10の21乗を表します。
exa
10の18乗を表します。
peta
10の15乗を表します。
tera
10の12乗を表します。
giga
10の9乗を表します。
mega
10の6乗を表します。
kilo
10の3乗を表します。
hecto
10の2乗を表します。
deka
10の1乗を表します。
deci
10の-1乗を表します。
centi
10の-2乗を表します。
milli
10の-3乗を表します。
micro
10の-6乗を表します。
nano
10の-9乗を表します。
pico
10の-12乗を表します。
femto
10の-15乗を表します。
atto
10の-18乗を表します。
zepto
10の-21乗を表します。
yocto
10の-24乗を表します。

補助単位句

全ての単位は補助単位句で修飾できます。 補助単位句は単位の前にスペースをおいて記述します。
half
1/2の〜。
quarter
1/4の〜。
googol
10の100乗倍の〜。
dozen
一ダースの〜。 一ダースは12個です。が…
baker's dozen
パン屋の一ダースの〜。 パン屋の一ダースは13個です。
gross
一ダースを一ダースの〜。 つまり、144個です。
score
20倍の〜。
percent
1/100の〜。

表示形式の変換

無次元数は表示形式を変換して表示することができます。
in binary
結果を二進数で表示します。
in octal
結果を八進数で表示します。
in decimal
結果を十進数で表示します。
in hex, in hexadecimal
結果を十六進数で表示します。
in base x
結果をx進法で表示します。ただし、xは2,8,10,16に限られています。
in Roman, in Roman numerals
結果をローマ数字で表示します。 ローマ数字で表現できない場合は、結果が表示されません。
in Arabic, in Arabic numerals
結果をアラビア数字(普通の数字)で表示します。
in words, in English
結果を言葉で表示します。

数詞

以下のキーワードは、数を英語表現するときに使えるキーワードです。 数を英語表現するときには必ず完全な形で入力する必要があります。 たとえば「million」だけでは不正で、「a million」や「one million」などとする必要があります。
million
百万の数です。
billion
十億の数です。
trillion
一兆の数です。
quadrillion
千兆の数です。
quintillion
百京の数です。
sextillion
十垓の数です。
septillion
一ジョの数です。
octillion
千ジョの数です。
nonillion
百穰の数です。
decillion
十溝の数です。
undecillion
一澗の数です。
duodecillion
千澗の数です。
tredecillion
百正の数です。
quattuordecillion
十載の数です。
quindecillion
一極の数です。
sexdecillion
千極の数です。
septendecillion
百恒河沙の数です。
octodecillion
十阿僧祇の数です。
novemdecillion
一那由他の数です。
vigintillion
千那由他の数です。

Bit Inside Google Calculator

ここでは、google電卓の内部動作についてちょっと調べてみたいと思います。

構文解析

google電卓は次のような順序で入力された式を解析していると考えられます。
  1. 式をトークンに分ける。
  2. 名前を認識。
  3. 単位の演算を実行。
  4. 数と単位から、単位付きの数を作る。
  5. 計算式の演算を実行。
演算の優先順位はたぶん次の通りです。
  1. 括弧
  2. 関数
  3. 階乗、パーセント
  4. べき乗
  5. x th root of y
  6. x percent of y
  7. x choose y
  8. 乗算、除算
  9. 剰余
  10. 加算、減算
  11. 〜 in/to 〜、how many 〜 in 〜
googleに入力された式はまず最初にスペースやその他の境界で分割され、 トークン列の形にされると考えられます。 よって、定数句や単位句に含まれる単語の間にいくつスペースを入れても正しく認識されます。
次に、トークン列から定数と単位が認識されます。 これは、google電卓では、どの演算子よりも優先して定数と単位が認識されることから解ります。
認識された単位は、数と組み合わされる前に単位同士で計算されます。 で、その後、数と組み合わされて単位付きの数になります。 この辺は、ホントかどうか疑わしいですが…。
最後に全体の演算が行われ、指定の形式で出力されます。 このときの演算の優先順位は通常の関数電卓と同じであると思われます。 ただし、負号について、次のような例もあります。
-1^2 = 1
0-1^2 = -1
上の例は「1」、下の例は「-1」となります。 これは負号が数の一部として認識されているか、演算子として認識されているかの違いによります。 この辺の解釈がどういうアルゴリズムから来ているのかはよく分かりません。

〜 in 〜の取り扱い

「〜 in 〜」の形の式は二とおりの解釈ができます。 ひとつは「計算式 in 単位式」で、もうひとつは「単位式 in 計算式」です。 では次の場合はどうなるでしょうか。 「計算式 in 単位式」としても解釈できますし、「単位式 in 計算式」としても解釈できます。 基本的には「計算式 in 単位式」としての解釈が優先するようで、 1分が時間の単位で表示され、結果は「0.0166666667 hour」となります。 では次の場合はどうなるのでしょう。 minuteが複数形になると、これは単位式として認識されるようで、「単位式 in 計算式」型の解釈になります。 1時間が分の単位で表示され、結果は「60 minutes」となります。 さらにどちらも複数形にしてみるとどうなるのでしょうか。 結果は「0.0166666667 hours」で、再び「計算式 in 単位式」として認識されていることが分かります。 うーん。ここで、how manyを使うと…。 これは明示的に「単位式 in 計算式」として解釈することを指定していますので、結果は「60 minutes」です。 ううむ、奥が深い。 ちなみにこの文、英語の文法テストで書いたら間違いです:P。

数の内部表現

google電卓は何桁の数まで扱えるのでしょうか。最大数はいくつなのでしょう。 2のべき乗を使って調べてみたところ、「2^1023.99999999999914739999…」までは計算できました。 以下どこまで続くのか分かりませんが、「2^1023.9999999999991474」になるともうダメです。 ちなみに計算結果は次のようになります。
2^1023.99999999999914739999 = 1.79769313 × 10308
私はちょっと勘がないので分からないのですが、分かる人ならこれでピンと来るのかも知れません。
ま、最大数は置いておいて、有効桁数の方からアプローチしてみましょう。 google電卓は通常、結果を最大9桁×指数部で返すようですが、結果が13桁以内ならそのまま表示してくれます。
0xFFFFFFFFFF in decimal
0xFFFFFFFFFF = 1 099 511 627 775
でも、これは表示上だけのことのようです。 この結果からは、内部的に何桁で計算しているのかはわかりません。 そこで、次のような計算をして調べてみました。
2×(1 + 2x) - 2x+1
これは明らかに、
2×(1 + 2x) - 2x+1 = 2 + 2x+1 - 2x+1 = 2
ですから、(1 + 2x)のところで桁があふれない限り、答えは2になるはずです。 googleに投入した式と、計算結果は次の通りです。
2*(1 + 2^10) - 2^11 = 2
2*(1 + 2^20) - 2^21 = 2

2*(1 + 2^50) - 2^51 = 2
2*(1 + 2^51) - 2^52 = 2
2*(1 + 2^52) - 2^53 = 2
2*(1 + 2^53) - 2^54 = 0
2*(1 + 2^54) - 2^55 = 0
この結果を見ると、2^53から計算がおかしくなっています。 このことから、内部精度は2^52と考えられます。 これは、Cで使われるdouble型の精度と同じです。 なるほど、google電卓はdouble型で値を計算しているのですね。

単位・次元

単位の扱いはよくわからないところがあります。 google電卓には、SIで定義されている6つの次元(長さ、質量、時間、温度、電流、光度)に加えて、 データ量を表す次元があります。 また、物質量(mole)のついた数は無次元の数と互換性があります。
角度も無次元と互換性があります。 よって、次の式は有効です。
how many degrees in a mole
1 mole = 3.4504332 × 1025 degrees
おお、なんてシュールな計算だ…。

大文字、小文字

google電卓には、1文字で示す単位の他に、フルスペルでも単位を入力することができます。 このとき人名に由来する単位でも全て小文字で入力するのが原則なのですが、 googleの場合、大抵はどちらでも認識します。 たとえば力の単位ニュートン(N)は、次の3とおりの表現が可能です。 ところが、大文字だと認識せずに、小文字でのみ認識する単位もあります。 磁束密度の単位gaussがそうです。
1Gauss= (計算できない)
1gauss= (計算できる)
まあ、この場合は、大文字のGは重力加速度、小文字のgはグラムだったりと、ややこしい事情があるためかも知れません。 大文字か小文字かで意味が変わる単位もあります。 小文字のcalorieに対して、先頭が大文字のCalorieは、キロカロリーになります。 また、小文字のbpsがbits per secondであるのに対し、大文字はbytes per secondを意味します。

単位と定数の区別の方法

単位と定数の区別は難しいのですが、次のようにすれば簡単に分かります。
1 調べたい名前 =
1 earth mass =
1 mass of earth =
この結果は次のようになります。 googleが復唱した式を見て、1と名前の間に*が付かなければ単位、*が付けば定数です。
1 earth mass = 5.9742 × 1024 kilograms
1 * mass of Earth = 5.9742 × 1024 kilograms

地球のなぞ

大文字小文字関連で一番不可解な動作をするのがEarthです。 まず最初に、google電卓さんにmass of earthを聞いてみましょう。 この結果は次のようになります。
mass of Earth = 5.9742 × 1024 kilograms
ほうほう、本当は「mass of Earth」と、先頭が大文字の「Earth」が正しい形式なのですね。 では改めて、正式名で聞いてみましょうか。
mass of Earth= (計算できない)
なぜか、大文字のEでは計算できません。 冠詞が必要なのでしょうか。
the mass of Earth= (計算できない)
mass of the Earth= (計算できない)
the mass of the Earth= (計算できない)
やっぱりだめです。 では半径はというと、 考えられる全ての組み合わせでちゃんと計算できます。 いったい何なんだ! ちなみに火星は、 大文字でも小文字でもいいけど、名前に冠詞が付くとダメなようですね。

自動単位換算

全く同じ単位名を、文脈によって別々の解釈をすることがあるようです。 上の例は体積の次元をもった1liter、下の例は質量の次元を持った1kgを、いずれもounceに変換しています。 この結果は次のとおり。
1 liter = 33.8140226 US fluid ounce
1 kilogram = 35.2739619 ounce
上は体積のオンス、下は質量のオンスにそれぞれ変換されています。 なかなかインテリジェントですね。
別の例もあります。 CとFに注目してみましょう。 通常、CとFは単体で書けば電磁気の単位CoulombとFaradとして認識されますが、演算子によって温度単位と解釈されることがあります。 次の例を見てください。 前者は、1クーロン×1ファラドで計算され、答えはクーロン・ファラドの単位で表示されます。 後者は、1セ氏度+1華氏度で計算され、答えはセ氏単位で表示されます。 まあ、後者をクーロン、ファラドと認識してしまうと次元が違うので計算できないのでこういう認識になるようですが、ちょっと考えすぎのような気もします。
語順で解釈が代わる場合もあります。 この例で、piには特に意味がありません。 次元のない定数ならどれでも一緒です。 なぜか前者はクーロン、後者はセ氏度で認識されてしまうようです。
Cばっかりの例がこれ。 ああもう、実にややこしい。
second、minuteも時間と角度の両方の意味を持っているキーワードです。 ええ、すでにもう式が意味をなしていないのは分かっていますとも。 いずれにしても、google電卓は最善の努力で単位を合わせようとするみたいです。

secondとhalf、fourthとquarter

xのy乗を表現する場合、何故かsecondとhalf、fourthとquarterが同義語として扱われます。 このあたりに、何か構文解釈の秘密が隠されていそうですね。

バグ

次の例は、全く言い逃れのできないバグでしょう。

おねがい

リファレンスの中で、関数、定数、単位の分類分けは、その名前をいろいろな文脈で使ってみて、その解釈のされ方で行っています。 よって、分類分けは間違っている可能性がありますし、また別の分類法があるかもしれません。
このリストの他にもgoogle電卓で使える名前、機能、または構文解析の別解釈、誤字脱字誤りなどなどありましたら、掲示板にてご連絡下さい。 このリファレンスについては雑談掲示板あたりが適しているかと思われます。
update:
2004/05/16
2004/05/18
2004/05/23
2004/05/29
2004/12/08
2004/12/19

戻る