関数電卓コラム

08/09/27 異文化との遭遇:TI-30XB

08/10/11追記
08/10/15訂正
08/12/08追記
09/05/08訂正

2008年の9月,学会でポルトガルはリスボンへ行った際にTexas Instrumentsの30XBという関数電卓を見つけた.日本では余り知られていないがTexas Instrumentsは関数電卓の老舗メーカー.Webページを見ると,現在8機種がラインナップされている.

購入したのはEl Corte Inglesという総合デパートだ.どういう訳か,関数電卓のコーナーが非常に充実していて,上述のTI関数電卓がほとんどすべて置いてあった.Voyage 200までがブリスターパックに入ってぶら下がっている様は壮観.ポルトガル人はよほど関数電卓が好きなのだろうか.

ぶら下がっているヤツの外観を見ただけではコイツの面白さはそれほど分からなかったが,一通り使ってみて私の選球眼が間違っていないことを確認.とにかく,発想が日本の関数電卓と違う点が面白いのだ.あまりに面白いのでレビューの他にこうして独立したコラムを起こすことにした.

ついでに言うと,同じアメリカのHewlett Packard社がリリースする「普通の」電卓HP 10sは本当に普通の電卓で,CASIOのSVPAM機と全く同じソフトウェアを使っており,特筆するべきものはない.


外観,キー配置

大きさは日本の「数式通り」に比べると少し大きく,厚みがある感じ.ディスプレイの上のスペースがいかにも無駄そうである.筐体の質感も日本の最新型(例えばCanon F-715S)と比べてチープ.実装技術に関しては日本メーカーに一日の長があることが歴然.ボタン数は少なめ.十字キーを除いたキーの数は41.日本のライバル機と位置づけられるCASIO fx-912ESは46だ.また,日本では「数式通り」機種に必ずある[alpha]キーがない.とにかく,シンプルな作りだ.

※現行のTI-30XSではここが太陽電池になっている.

蓋は日本の電卓と違い,しならせて外し,パチンとはめる方式.これはあまり使い勝手が良くない.ゴム足も耐久性に問題があるので使って欲しくないところだ.


MultiView機能

CASIOの「Natural display」とほぼ同等のWSYIWIG数式入力機能.ドットマトリクス液晶が安く製造できる現代においては,むしろ標準的な入力方式になって欲しいと思うこの機能だがTIではMultiViewは教育用電卓と位置づけているようだ.

Texas InstrumentsのWebサイトの関数電卓のページを覗いてみると,実に多種多様な関数電卓がラインナップされている.日本でも一部マニアがポケットコンピューターVoyage 200を使っているようだが,TI製の一般的な関数電卓を使っている人は皆無ではなかろうか.何しろ日本では入手する方法がない.

そして,30XBはそのなかでも最廉価機種で,しかもブリスターパックには「教員と一緒に開発した中等教育用電卓.試験持込可能!」と謳われていることが分かる.上位機種は日本の「数式通り」のように,上段に数式が現れるタイプ.この辺から,日本とアメリカの文化の違いが垣間見える.これについては後でまた述べよう.

使い勝手はCASIO fx-912ESとほぼ変わらないのだが,少々使ってみよう.まずは簡単な計算から.

30XBは,なるべくたくさんの数式と答を表示するように数式と答が詰めて表示される.数式が長いときは行替えされる.一方,fx-912ESは計算を新規に始めると前の数式はディスプレイから消えてしまう.TI方式の方が便利だと思うのだが,CASIOの方はおそらく「数式通り」のカルチャーを引きずっているものと思われる.一方30XBの起源がポケコンであろうというのは,「*」フォントを見ることから想像できる.

続いて,fx-912ES紹介記事で行った以下の計算.
\begin{displaymath}
\lambda = 2\sqrt{\left\{\left(\frac{1}{12}\right)^2+\left(\frac{1}{8}\right)^2\right\}^{-1}}
\end{displaymath}

比較はごらんの通り.入力方式,手数は全く一緒.「Natural display」の特徴の一つとしてルートを崩さない,というものがあるが,この場合も例外ではない.一方の30XBは小数で答が得られる.30XBにも[<->]キーはあるが,これくらい複雑になるとルートを含む形には変換できない.
       
一方,なんでもかんでも分数にしてしまうのがfx-912ESの欠点で,以下の計算を

       \begin{displaymath}
1.2+1.3=\frac{5}{2}
\end{displaymath}


と分数で返すわけだが30XBは当然小数で答を返す.というより,何でこうなっちゃうの?CASIOさん.

ここで,代表的な計算の答えを両機がどう返すかを比較してみよう.

計算式 30XB fx-912ES
答え 変換可能 答え 変換可能
2.5  
   
   
32.9867...  
4.4428... × 4.4428... ×
0.7071... ×  
   
   
0.3826... × 0.3826... ×

(rad mode)
1.5707...  

※「変換可能」とは,小数で出た答えが分数,√,あるいはπを含んだ形に再変換可能かどうかを表す.

912ESはどんな場合でもとりあえず分数にして返さないと気が済まないらしい.小数の入力は小数で,分数の入力は分数で返す30XBの方が秀逸.一方で程度で30XBはギブアップ.この勝負,引き分けというところか.
どちらも,sin15°を既約分数とルートの形で返したのはびっくり.内部で半角の公式でも使っているのか??一方,sin45/2°はどちらも小数.

※08/10/15 912ESもsin15°を既約分数とルートの形で返す.間違いを訂正.

次は入力の仕様の差異について.関数電卓にとって良いユーザーインターフェースとは,

  1. 入力しなくとも意味の分かる,不必要な入力は避けられること(省略の美学)
  2. 記号の定義に曖昧さがないこと.たとえば[(-)]と[-]など.

というのは常々主張してきたことだが,もうひとつ「論理的に許される入力は拒まない」というのを挙げたい.この点,30XBはfx-912ESに比べて秀逸.

どちらの電卓も関数キーを押すとには自動的に開き括弧が現れる.たとえばsin30°は,[sin] [30]まで入力すると下のようになるが,

ここでイコールキーを押せば正常に計算が終了する.

ここまでなら「スタック」の原理からいって当然の動作.では,次のような計算はどうだろうか.

このばあい,30XBは期待される答を返すが,fx-912ESはSyntax Errorとなる.しかし,「sin(30=」が許されるなら,こちらも許されてしかるべきだろう.分数の最後には暗黙の閉じ括弧があるわけだから.もちろん,「sin(30=」も許さない,という厳密な解釈があっても良い.どちらかに統一されていないのは悪いユーザーインターフェースだ.

というより開き括弧は本当に必要か?

また,分数と小数の掛け算については,30XBは以下のような入力を許すが,fx-912ESは分数の後には演算子記号[+] [-] [×] [÷]か関数しか許されず,分数と小数の掛け算には明示的にという入力が必要になる.これは美しくない.

ただし30XBも完璧,というわけではなく,分数と分数の掛け算は間に[×]を要求する.例えばは論理的には

[n/d] [2] [↓] [3] [→] [n/d] [4] [↓] [5] [enter]

で計算できなくてはならないが,二個目の分数記号[n/d]を入力するとなぜか連分数になってしまう.はじめは「バグか?」と思ったら,これはこれで考えられた上での仕様とわかった.例えば,2÷3を入力したいときはまず[2]を入力,それから[÷]を入力する.ところがNatural Displyaタイプの入力方式では,分数の場合先に分数を宣言する[n/d]を入力する必要があるので入力の順番が変わってしまう.一方,30XBはの入力が

[2] [n/d] [3] [→]

でもイケるのだ(もちろん,先に[n/d]でも良い).この方法だと分数が一手少なく入力可.しかし,「数値」[n/d]と入力すると最初の数値が例え分数であっても分子に乗っかってしまう.うーん,だったら思い切って[÷]記号を排除してもいいなあ.

続いて,使っていて気づいた表示部のバグについて指摘しておく.fx-912ESでは絶対に起こらないのだが,30XBでは下の写真のようにときたま表示の更新ミスが見られる.また,括弧のネストが深いと表示が切れたようになることもある.この辺の細かい気配りは日本メーカーに一日の長あり.
 (一番左の「2」の表示がズレている)
 (括弧の階層が深いと表示しきれなくなる)

最後に,反応速度のチェック.以下の計算を入力してみると

       \begin{displaymath}
\sqrt{\frac{6.7\times 10^{-11} \times 7.4 \times 10^{22}}{1.7\times 10^6}}
\end{displaymath}

やはり22のところでキーをチャッチャと打つと,一つめの2しか認識されない.しかし,弄っていて気がついたのが,10^22のところが10^23だと正しく認識されると言うことだ.同じ計算をfx-912ESでやってみたが,やはり10^23だと正しく認識される.どうやら,チャタリングのタイマーが時間でなくループカウントになっていて,式が複雑になると時定数が長くなるというしかけと推測する.日米の2機種で,全く同じ挙動というのは偶然だろうか.



メモリ機能

本機と国産機を比べて最も感心したのがメモリ機能.本機にはx, y, z, t, a, b, cの7つのメモリがあるが,各メモリへ直接store / readアクセスするボタンがない.変わりに,下の写真のような変わったボタンがある.機能の少なさとも相まって,この電卓には[Alpha]キーが無いのだ.本コラムではかつて「関数電卓に[alpha]キーは不要」という論陣を張ったが,こういう解決方法があるということには思い至らなかった.一本取られたという感じだ.

ではこれをどうやって使うか説明しよう.まず,変数xへの計算結果の代入.これは

[sto] [x] [enter]

となる([enter]は日本製の[=]と同じ.では,メモリyに値を代入したいときは?今度は,のボタンを2回押す.

[sto] [x] [x] [enter]

つまり,のボタンは何回か押すことで変数を選ぶという,ケータイの文字入力と同じインターフェースなのだ.一見する迂遠なこの方式,実に合理的であるとが使っていくうちにわかる.まずボタンの数が少なくて済む.そして,よく使うx,yにはすぐ手が届き,余り使わない変数は手数が多いという,「ハフマン符号」の原則に則ったインターフェースになっているのだ.一応,このTIのメモリインターフェースを「ハフマン方式」と名付けておこう.

ハフマン方式の威力が発揮されるのは変数を呼び出すとき.例えばxにある値を入れて,

なんてのを計算しようとする.30XBなら手数は

[x][sin][n/d][2][↓][x][enter]


とわずか7手.「省略の美学」として最後の括弧は省略可能だ.「数式通り」電卓なら,xを呼び出すために[alpha] [x]と押さなくてはいけないので3手多くなる.かつて私は「関数電卓にマルチメモリは不要」と書いたことがあるが,さすがに今ではこれは極論だと思っている.しかし,ハフマン方式なら,事実上xへの代入は単独メモリへのストア/ロードと手順がほとんど同じ(ストア時に[enter]が必要だが)で,複数メモリと単純なインターフェースという矛盾する課題を見事に解決している.

加えて,30XBにはストアされた値を一覧で表示(もちろん利用も)する機能がある.HP 35sにもあるこの機能,国産機は是非見習って欲しい.


その他の特徴

メモリが消えない:本機は明示的に「全クリア」を指示しない限り数式が履歴から消えない.[clear]キーの機能は
  入力中   :入力バッファの全データ
  履歴表示中:選択された履歴
を消す機能だけ.しかし,ユーザーサイドに立った場合こちらの方が便利だと私は思う.履歴なんぞ,使わなければ放っておけばよいので,[clear]キーでいちいち消去されてしまうのは余計なお世話というものだ.国産機では使いたかった履歴の式が消えていて悔しい思いをすることが良くあったが本機では「どうしてこんなに昔のが」と思うくらいのものが残っている.

もちろん,明示的な全クリアも可能で,[on]キーと[clear]キーを同時に押す.この辺も人間工学に則った仕様.
一方で,履歴の遡り方は少々迂遠な仕様となっている.[↑]キーを押すと「前回の答え」→「前回の式」→「その前の答え」→と遡っていく.二つ前の式を呼び出して再利用したければ

[↑] [↑] [↑] [↑] [enter]

と手数が多くなる.

(履歴を遡っている状態.ここで[clear]を押すと,反転中の答えとそれを計算した数式のみが消去される)
ここは国産機の,数式のみを遡る仕様の方が合理的.答を利用したければ,表示された数式から[enter]を押せば良いけなので.

表示状態が保存される:また,本機は電源を切っても,切った状態がそのまま保存される.入力中の数値においてもそれは例外ではない.かつて,メールで「入力中の数値がオートパワーoffで消えない電卓は無いでしょうか」という質問を受けた(コラム参照).まさに,本機がその要求に応えるものだ.

入力ルールは厳格:以前コラムで話題にした[(-)][-]キーの扱いについてはどうだろうか.テストしたところ,本機は極めて厳密な解釈を取っている.つまり,符号のマイナスであるべき所に演算子の[-]が来た場合はすべてsyntax errorを返す.この仕様は私の好み.省略は美学だが曖昧さは電卓にとっては悪癖でしかない.

キーマクロ機能:本機の面白い機能として「キーマクロ機能」がある.これは,最大44のキー操作を記憶する機能だ.言葉では説明し難いので実例で説明しよう.
例えば,半径10mmから15mmまでの円の面積を1mmおきに計算したいとする.このときマクロ機能を使うと,

[2nd] [K] マクロモードに入る


[x2] [π] [enter] 操作の記憶


[10] [enter] で10^2πが計算される.←ここで,enterが押されるたびに,マクロで記憶したキー操作列が再生されるというわけ.
続いて [11] [enter] で11^2πが計算される.
続いて [12] [enter] で12^2πが計算される.
   ・
   ・
   ・


マクロモードは,抜けるまで[enter]キーの機能が異なるので,通常の計算に戻りたいときは
[2nd] [K]
でマクロモードから抜ける必要がある.

マクロ自身が数式として完結している必要はないが,連続したキー操作しか記憶できないと言う欠点がある.上述のようにくり返し計算に使われる機能だろうが,国産の「CALC機能」に比べれば使えるシチュエーションが限られる.例えば,変数xが下式

の位置にある数式は本機のマクロ機能ではお手上げだが,CALC機能なら楽勝.連続計算の機能に関しては国産機に軍配が上がる.

table機能:本記事を読んだ30XS愛用者の方から以下のようなメールを頂いた.以下,抜粋して掲載する.

初めまして、林と申します。

 TI-30XB に付いて詳細なコラムがあり、とても面白かったのですが、一点述べさせ
て頂きたい事があります。

 コラム本文に、繰り返し計算においてはキーマクロ機能よりCALC機能に軍配が上が
るという記述がありますが、この機種の特有の機能である、table 機能をご利用に
なってみてください。

 table 機能の、Ask-x モードを使用すると、「08/04/14 CALC機能を使おう」の
ページに書かれている事と同様の事、(等間隔で変化するわけではない実験の測定値
に対して、インピーダンス値を得る様な計算)が楽に行えると考えました。

y=10000/√((10/x)^2-1)

Ask-x OK

 x | y
9.6 | 34285.71429
8.6 | 16853.02874
 (3行まで、x と y の組み合わせを表示可能)

メールをもらうまでこの機能には気づかなかった.不明を恥じるばかりである.早速使ってみよう.例題は,上のメッセージにあるように「08/04/14 CALC機能を使おう」で出た,インピーダンスの計算.

まず,[table]キーで表計算モードに入る.すると,数式を入力する状態になる.30XBの特徴として,「何でも憶えている」というものがあって,明示的に消さない限り前に入力した数式をいつまでも憶えている.ここで,インピーダンスの公式

を入れてみよう.

[clear] [n/d] [1] [x10n] [4] [↓] [√] [n/d] [1] [0] [↓] [x] [→] [→] [x2] [-] [1] [enter]

ここでもハフマン方式の[x]キーの便利さが光る.

[enter]を押すと計算モード選択に移る.

この画面で,Ask-xを選択してOK表示の上で[enter].すると,入力したxに対してyを自動的に計算する.

残念ながら,スクロールはないので常にxとしては3つの値しか保持できない.新しい値で計算したいときはカーソルで3つのxから選び,上書きする.

これは,もしかしてcalc機能を越えたかも??スクロール機能さえあれば完璧ではないか.ここを読んでいるメーカーの人がいたら是非参考にして下さい.

欠点

今までは本機の好ましい特徴について述べてきたがここで欠点についてまとめておこう.「数式通り」関数電卓において使い勝手を左右する重要なキー,それは[ans]キーである.私の知るかぎりすべての機種に装備されているが,これが[=]キーの裏に回っているのがSHARPの「数式通り」電卓.本機は[(-)]キーの裏にある.

もうひとつ,物理の計算で非常によく使われるにもかかわらず装備率が100%といかないのが[F<->F],または[ENG]キーである.これも,SHARPの電卓には装備されていない機能で,それ故私はSHARPの関数電卓に対する評価は辛い.本機も残念なことに[ENG]キーがついていない.

これら二つのキーは下手をすると加減乗除と同様によく使われるのだが,なぜこれらのキーを前面に配置する設計をとらないのか,ぜひSHARPとTIの設計者に聞いてみたい.

キーの数だが,あと4つくらいは増やしても良いのではないか.私が持っているすべての関数電卓に備わっている,階乗[!]キーと時分秒[゚ ' '']キーが見あたらない.実はこれらは機能としては装備されていて,[prb]キーの先にある.[prb]キーを押すと

というメニューが,[2nd] [prb]キーを押すと

というメニューが現れる.機能としてあればいいと言うのか.おそらく,この面倒くささでは,誰も時間や角度の計算をやる気にはならないだろう.これらの機能は,装備するなら専用のキーを設けるべき.


日米比較文化論

冒頭で述べたように,本機は高校生(原語ではsecond level education)向けに教員と一緒に開発された機種であり,「試験持込可」を謳っている.日本の高校で,数学の時間に関数電卓が持ち込める期末試験というのは考えられないのではないだろうか.また,本機の特徴である,数式履歴が消去されない仕様は日本の各種国家資格試験への持込可能機種からは外されている.
※日本におけるTIの代理店,Naoco Inc.の方からご指摘を頂いた.second levelは日本で言う中学生の事だそうだ.高校生はTI-84Plusなどのグラフ電卓が主流とのこと.進んでるなあ.

しかし,ちょっと待って欲しい.なぜ,数学の試験に関数電卓を持ち込んではいけないのだろうか.例えば√(12+15)を既約にする能力は,高校数学で教えるべき高度な抽象記号操作なんだろうか.各種資格だって現場で使われるであろうスキルを持っているかどうかの試験なんだから,普通に何千円かを払って入手可能な電卓を使ってはいけないという正当な理由を見いだせない.

つまり,日本の試験において電卓の使用が制限されているのは,問題を作る側,つまり教える側の能力不足が反映された結果であると私は思うのである.言葉を換えれば,電卓に憶えさせられる程度の知識で解けるような,単純な暗記問題しか出題できない,そういう教え方しかできないからこそ電卓の持込みを制限せざるをえないというわけだ.

この種の試験において試されるべき能力は何だろうか.それは,勉強しなければ身に付かないであろう高度な思考能力であり,反復練習や暗記で身に付く,応用力のない知識ではないだろう.私が日頃から感じる,アメリカのエンジニアと日本のエンジニアの間の違いには,ここで見た試験における基本的姿勢の違いも反映されているのではないかとしみじみ思うのである.