前のポストの所で、Sentaro様からのコメントを戴きまして、まだ、色々と考えないとならないことが多いのではありますが、少しだけ思いつきを記しておきたく。
fx-5800Pの改良について
まず、fx-5800Pの機能の一つ「数式記憶機能」について、色々と考えておりました。
fx-5800Pの数式記憶機能、マニュアルをみると、結構気になるものです。
まず、標準で、128の公式があって、これをコピーして編集したり、新規に自前の公式を導入して、ワンタッチで計算できるというものです。
こうした機能、ポケコンの頃から様々用意されておりましたが、fx-5800P秀逸な所は、ギリシャ文字やアルファベットの添字などを使って、表記が柔軟な数式を記入できる所です。一つの到達点に達したかの様なものであります。
しかし、惜しむらくは、この数式記憶機能、そこに囲まれているため、BASICからの利用が出来ない所でしょうか。
BASICでは、別途、プログラムを組めば良いのではありますが、せっかく、ここまで高度な機能があるのなら、縦断して使いたくなります。
まあ、それが難しいというのであれば、この数式記憶でSolverが使えたら、更に面白かったと思うのであります。
128個の数式、というと、結構数が多いように思われますが、1つの計算式について、複数の変量があるため、それらの変量について解いた数式を別個に入れているので、どうしても数式の本数は多くなってしまいます。
数式記憶機能でSolverで使えたら、登録する数式は一本で済みます。これだけで、大分使い勝手がよくなるはず。
欲を言うならば、複数の数式を連立されてSolverで計算できたらいいのでしょうが、そうなると、BASICの仕事、でいいのかも。関数電卓として、数式記憶機能にSolverをつけるだけで、かなり使い勝手が向上しそうです。
ついでに、登録済みの数式についての「副読本」を添付するなどの工夫があれば、学習用途としてもかなり役立ちそうな気がします。
ご一考戴きたく思う次第。
upython電卓の未来像 ?
upython 機能が多くのグラフ電卓に採用される所となりました。
ここで、いくつかの問題があると思われます。
- upython が電卓の機能と相互に乗り入れできない
- upython の2進数計算と電卓機能のBCD計算がちがーう
- upython スクリプトの入力、電卓のキーボードでは入力が面倒
1. については、「upython プログラミングの学習用」という位置付けらしく、従来のグラフ電卓機能との分離、やむを得ない所らしい。
例えば、CASIO FX-CG50にて、キーボード real time 入力の検知が出来ないのは、CASIOの方針として「ゲームにうつつを抜かしてはイケナイ」という教育的配慮らしいのですが、これは追々、変化があることを期待したいものです。
また、グラフ電卓部分では、統計処理の所で、t分布などの計算が出来るものの、これらの計算をupython で行うには、gamma function などの特殊関数の機能が必要になりますが、upython 電卓には、こうした関数の計算をするmoduleが提供されておらず、必要と鳴ったら、自前で用意しないとならない。
更に、データを収集して、それをグラフ電卓部分でグラフにしたり、計算処理したりなどですが、upythonにこのデータを持っていったりなどの作業も出来ない、歯がゆさが残ります。
2. については、電卓の計算では、多く1E100までの範囲での計算でしたが、同時に、計算精度も、その範囲内では保証されておりました。電卓側ではBCD (Binary Coded Decimal ;「2進化10進数」)による計算のため、計算精度の保証が出来た様です。
しかし、upython では 実数については2進数のdouble float で計算、もしくは、整数値は多桁整数値の利用が可能で、実数値については、1E320くらいまでは計算でき、計算の範囲は大きく異なります。同時に、2進数floatには、計算についての桁落ちの様な問題もありました。
3. については、電卓というformが根本的に抱える問題でもあり、I/Fの改良による所で、各メーカーは努力を続けております。
こうした問題点を緩和するためには、どうしたらよかんべ ?
1. ですが、upythonのmodule をリッチに追加するしか方策はなさそうです。
例えば、特殊関数のmoudleや、システムよりのmoduleを大量に追加する。
そうして、グラフ電卓部分が不要になる程度に、upython orientedを目指す方向です。
2. については、Sentaro様は「BCDモードをもたせたらいいのではないか」との言葉を寄せていただきました。これが電卓側としては「まっとうな」解決案なのだと思います。
一方で、科学技術計算、特に、sense dataによる科学定数や測定値などには、ある程度の有効桁が存在しており、計算作業の累積で、最後は最も少ない桁数の数値に寄せて、計算精度とする必要があります。そう考えると、double float でも、十分事足りる様でもあります。
幸い、整数の計算については非常に大きな桁数の計算が出来ます。うまくすれば、多桁整数を利用して、手回し計算機の様に桁数の多い計算も可能です。
この際だから、upython電卓としては、BCD計算を止めてしまってもいいのかも知れません。
3. については、電卓のformが抱える根本的な問題でもありますから、極端な話、それこそ、昔のポケコンの様な形状まで検討したら良いのかも知れません。
一方で、高度化する電卓ハードウェアに事寄せて、一つの解決策を提示できるかも知れない。
それは、Bluetooth I/Fの採用です。
Bluetoothを採用する事で、市販のBluetoothキーボードを利用して、upython scriptの入力が軽快に出来る可能性を検討できるのではないか、と。
また、昨今は、Bluetoothで接続できる感熱プリンターなんかもあります。こうしたものを使うと、計算結果やグラフィクスなどを感熱紙に印刷できたりなど、結構夢が広がりますネ !
昔のポケコンやプロ電には、PCに寄せて感熱プリンターなどの周辺機器がありました。
電卓製品になったとしても、こういったものがあったら、それなりに利便があるのではないか、と。