Casio fx-CG50 の概要

 
初版: 2017/07/23
追記 2018/08/09
追記 2018/12/26
日本語化に関する追記 2019/05/09
追記 2019/09/18
周期関数の積分について追記修正 2020/05/23
OS3.40へのアップデート 2020/06/06
Casio Ptyhon新連載に伴う追記 2020/06/09

Casio fx-CG50

fx-CG50 noce photofx-CG50 が欧米で発売されたので、国内発売前に入手して調べてみました。本気で欲しいと思える製品です。

fx-JP900 のデザインを踏襲しています。角に丸みのある四角い形状と高級感のあるフロントパネル、黒・白・シルバーを基調とした色使い。カシオの新しい形。所有する喜びを感じるデザインではないでしょうか?

fx-CG50 は、fx-CG10 PRIZM (北米モデル) や fx-CG2 の後継機で、欧米で 2017年3月末に発売されました。ほぼ7年ぶりの後継機種投入です。

fx-CG50 紹介 (英語のサイト)

日本未発売前に、eBay USA で購入しました。この記事を書いている時点では、eBay USA での実売価格は、新品で100ドルを下回る程度です。国際輸送費を考えてもアメリカからの入手は現実的だと思います。但し配送に時間がかかります(最低でも2週間程度)。

[2020/06/09 追記] Casio Pythonの新連載開始
Casio Python が爆速 (純正Casio Basicに比べて) なので、Casio Python 使いこなしの新連載を始めました。

[2020/06/06 追記] OS3.40 にアップデート
欧米では 2020/04/07 に、日本国内では 2020/06/01 にアップデートモジュール配布開始
内蔵の Micro Python に casioplot モジュールが追加され、点を打てるようになった。
OSアップデートファイル
 ・WEWからのダウンロードはこちら
 ・国内サイトからのダウンロードはこちら
日本語マニュアルはこちら

[2019/09/18 追記] OS3.30 にアップデート
主に Pythonの改善と試験モードの使用追加
・WEWからのダウンロードはこちら
・国内サイトからのダウンロードはこちら

[2019/05/09 追記] ユーザーによる日本語化計画
fx-CG50 には、簡体字コード GB2123 を少し変更したグリフ (文字) が搭載されており、それを読み出す方法が見つかった(当ブログ読者の Colon様による)。簡体字は日本語の文字と異なるものが少なくないが、それでも英語よりはましだ。ひらがなも含まれている。Colon様により日本語化ファイルが提供されており、これを fx-CG50 にコピーするだけで、日本語風表記で使えるようになる。
fx-CG20 / CG50 日本語化計画
さらに、fx-CG50で使えるアドインプログラム - C.Basic for CG が当ブログの読者である sentaro様を中心にして現在も開発が進んでいる。C.Basic for CG は純正Casio Basicの上位互換の BASIC開発環境だ。これを使えば作成するプログラムで日本語風の表記が可能になる。
プログラムライブラリ - 日本語版 西暦-和暦 換算プログラム
 
[2018/12/26 追記] ついに Python搭載!
OSが 3.20 にアップデートされ、プログラミング言語 Python が追加され、選択言語にイタリア語が追加されました。
Worldwide Education Website (WEW: 海外のカシオサイト)では2018年8月には公開されていましたが、日本のサイトでは 2018年12月に公開されました。
- WEWからのダウンロードはこちら
- 国内サイトのダウンロードはこちら

[2017/10/20 追記] ついに 2017年10月20日に fx-CG50 が国内発売!
カラーグラフ関数電卓 fx-CG50 
fx-CG50

既にカシオの国内サイトでは fx-CG50 (OS 3.10) の日本語マニュアルが公開されていることから、国内販売は現行の Ver 3.00 でなくて、Ver 3.10 になると思われます。
 
[2017/09/23 追記] fx-CG50 日本語マニュアル
fx-CG50 の日本語マニュアルがカシオ日本語サイトの 取扱説明書ダウンロードサイト からダウンロードできるようになりました。ハードウェアマニュアルとソフトウェアマニュアルの両方の日本語アニュアルです。ソフトウェアマニュアルが OS Ver 3.10 用になっています。国内販売前のバーションは 3.00 です。現時点では OS アップデートファイルはまだ公開されていませんが、国内おカシオサイトや Casio World Education Website で近々ダウンロード可能になると思われます。恐らく同時に fx-CG20 を OS 3.10 にアップデートできるようになるようです (OS 3.10 ソフトウェアマニュアルは fx-CCG20 OS 3.10 と共用のため)。
[2018/08/09 追記]
ソフトウェアマニュアル日本語版が Ver 3.11 にアップデートされていて、カシオの日本語サイトからダウンロードできます。アメリカ市場において2018年3月以降製造のfx-CG50には OS 3.11 がインストールされており、国内販売品もいずれ OS 3.11 がインストールされるようになるかも知れません。

[2018/08/09 追記・修正] OS 3.11 へのアップデートファイル公開
Casio World Education Website のサポートページ ([Accept] をクリックして先に進む) から OS3.11 へのアップデート用アプリとアップデート方法の説明書 (PDF) をダウンロードし、説明書に従って作業を進めます。アップデートアプリの指示があるまで電卓とPCを接続してはダメと書かれていますので要注意。

[2018/08/09 追記・修正] OS 3.11 へのアップデート
ダウンロードしたアップデート用アプリ (fx-CG50 Sries OS Ver.3.11 Update.exe) をPCで実行すると、私の場合は 日本語 Windows 10 Home ですが、自動的に日本語表示でアプリが起動。注意深く表示に従って作業を行うと、アドイン 3D-Grph もアップデートするように聞いてくるので一緒にアップデート。 [MENU] - System - [F4] (Version) で確認すると OS は 3.11.0202 に、3D Graph は 01.02 になる。


なお、fx-CG50 は言語を選択できますが、OSアップデートしても日本語は選べません。言語の選択肢に中文も含まれているので日本語対応も容易だと思います。スタンダード関数電卓 fx-JP900 は表示が日本語化されているので、このデザインコンセプトを引き継いだ fx-CG50 もいずれ日本語表示に対応することを期待します。

 
はじめに

Casio Basic の機能に着目すると、以下に列挙した機種が同じカテゴリに含まれるプログラム電卓です。

 - 2006年発売 fx-5800P 
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2011年発売 fx-CG10 PRIZM (北米のみ)、fx-CG20とほぼ同じ
 - 2012年発売 fx-CG20 (fx-CG10 PRIZM の約1年後)
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米先行、2017/10/20国内発売)

fx-CG50 は fx-CG10 PRIZM / fx-CG20 の後継機種です。1つ前に発売されている fx-FD10 Pro は、fx-9860GII のハードウェアを利用しながらアドインが使えず Casio Basic 専用機である点で異質な存在です。
 
 
fx-CG50 の位置づけ [2017/08/07 更新]
Casio Basic に着目すると、fx-CG50 の位置づけが明確に見えてきます。
  • fx-9860GII:モノクロ液晶搭載の最上位機。
  • fx-CG10 PRIZM / fx-CG20:fx-9860GII のディスプレイを高精細&カラー化したもの。しかし Casio Basic では テキスト、グラフィックずれも画面出力処理が極めて遅く、fx-9860GII の方が遙かに速い。カラーだが出力が遅い fx-CG10 / CG20 が良いのか、モノクロだが出力が速い fx-9860GII が良いのか、2機種の甲乙を付けられない状況だった。言い換えれば、fx-CG10 / 20 は必ずしも fx-9860GII の後継機種とは言えないのだ。
  • fx-CG50:高精細カラー液晶へ出力が大幅に高速化したのが最大の改善点で、fx-9860GII と同レベルになった。
fx-CG50 の Casio Basic は、カラーと高精細に関係するコマンドを除けば fx-9860GII と互換です。fx-9860GII で作った Casio Basic は、fx-CG50 でほぼ同じ出力速度で動作します。

互換性の無いコマンド:
※ パラメータ見直しが必要なコマンド:PxlOn、PxlOff、PxlChg、PxlTest(
※ 転送時に自動的にパラメータが変更されるコマンド: Text

fx-CG50 は、fx-9860GII をカラー化した後継機種、現時点での最上位機と位置づけられます。
 
 
ハードウェア機能
fx-CG50 は、fx-CG20 から内部のハードウェアが変更されています。CPU は同じものを使いながら、処理速度を向上させ、一方で消費電力が抑えられ、バッテリー駆動時間が延びました。RAM (ストレージメモリ) は、fx-CG20 の SRAM から fx-CG50 では SDRAM に変更されています。

fx-CG50 の省電力化 (fx-CG20 との比較) ※2
動作モードfx-CG50fx-CG20省電力化の傾向 ※3
電源OFF 0.1 mA 以下 0.1 mA 以下---
電源ON
 RUN-MAT待機状態、輝度1※1 2.5 mA (10.0 mA) 3.0 mA (14.3 mA)16.7% (30.0%)
 RUN-MAT待機状態、輝度3 ※1 5.5 mA (13.0 mA) 8.3 mA (21.0 mA)33.7% (38.1%)
 RUN-MAT待機状態、輝度5 ※1 9.5 mA (18.0 mA) 16.4 mA (30.8 mA)42.1% (41.6%)
 Casio Basic実行、輝度1 ※1 21.1 mA (22.2 mA) 23 mA (30.3 mA)8.3% (26.7%)
 アドイン実行、輝度1 ※1 39.8 mA (40.4 mA) 38.0 mA (50.0 mA)-4.7% (19.2%)
※1: カッコ内は USB接続状態、※2: sentaro様ご提供の測定値 を使用
※3: 省電力化の傾向 (%) = ( CG20の値 - CG50の値 ) / G20の値 × 100

同じ CPU を使っているので、電流値の変化が消費電力の変化と見なします。
処理速度については、関数や Casio Basic の処理内容に応じた比較測定の結果を以下で紹介します。
 
 
ソフトウェア
 fx-CG50 のソフトウェアは、ハードウェアの違いを吸収する OS が Ver 3 にバージョンアップしています。表に出てくる関数機能や Casio Basic の機能面では違いが見られません。アドインについては、ROM や RAMに直接アクセスしたり、SRAM からSDRAM に変更された RAM の違いの影響が現れるようなコードが使われていない場合は、fx-CG20 と fx-CG50 では同じアドインプログラムが動作します。fx-CG50 になってもアドインの拡張子が g3a と変わっていないことも互換性の高さを裏付けています。

fx-9860G と fx-9860GII にはアドイン作成用のカシオ公式SDKが公開されていますが、fx-CG20 以降は公式なSDKがありません。従って、カシオ純正あるいは公認の アドイン (g3a) ファイルなら fx-CG20 と fx-CG50 での互換性は保たれると考えても良さそうですが、サードパーティや個人が作成したアドイン (g3a) ファイルは、使用に際して fx-CG50 での動作確認がされているかに注意が必要です。 

さて Casio Basic については、fx-CG20 とfx-CG50 は完全互換です。違いを探していますが、未だに見つかっていません。プログラムファイルの拡張子も同じで g3m のままです。
 
 
キー入力の問題
CG50 Ten Keys 

写真に写っている大きなキートップのテンキーなどは、キーの右側を軽く押すときに入力を受け付けないことがあります。キーの左側を押す時は問題ありません。他の所有者の fx-CG50 でも同じ問題があることが分かりました。

慣れれば問題ないかも知れません。しかしチャッチャッとキーを速く軽く叩く使い方は特殊でないでしょうし、そのような使い方では入力を受け付けないことが確実にあります。もぐら叩きゲームのようなテンキーの早押しが必要な場合は、慣れの問題ではなくて避けられない問題となるかも知れません。そこで特に必要性は無いけれど面白そうなので、もぐら叩きゲーム fx-5800P 版を移植して fx-CG50 版を作り 遊んでみました。急いでキーを叩く際、どうしてもキー入力の不備からゲーム進行が不利になります。

この不具合は、キーのバネ機構と接点パネルに関する設計や組み付け工程の問題、或いはこれらの複合的問題によると推察しています。この不具合をカシオが認識して、国内発売までに改善するのかどうかに興味があります。

fx-5800P のカバーヒンジの問題、fx-JP900 のハードカバーの問題 (問題は既に指摘、整形の問題のないロットの存在については今後記事にするかも...) に続いて、今回 fx-CG50 テンキー問題も出てきました。とても残念です。
 

 
目 次

1. 海外から直接購入


2. 到着したパッケージ

3. 外 観

4. 他機種との比較
 4.1 地味な改善 - バーコード & シリアルのラベル

5. ダウンロード
 5.1 OSアップデート
 5.2 取扱説明書
 5.3 アドインプログラム
 5.4 サポートソフトウェア

6. データ転送
 6.1 PCとのリンク
 6.2. 電卓同士のデータ転送

7. バックアップ

8. ハードウェア
 8.1 キー入力
 8.2 液晶表示

9. 関数電卓としての機能
 9.1 ユーザデータのバックアップ機能
 9.2 3桁区切り表示
 9.3 複素指数関数
 9.4 積分関数の処理速度
 9.5 周期関数の積分

10. Casio Basic の互換性

11. カタログ機能

12. Casio Bsic の処理速度
 12.1 計算主体
 12.2 動きのあるテキスト出力
 12.3 動きのあるグラフィック出力

13. さらなる高速化
 13.1 オーバークロック
 13.2 アドイン版Casio Basic (C.Basic)
 

 
海外から直接購入

[2017/07/28 追記]
Amazon USA で日本への輸出が可能な fx-CG50 の取り扱いが始まっています。sentaro様が ここから購入したところ、驚くほど短時間で入手したとの情報がありました。Amazon USA での購入が、推奨可能な候補として浮かび上がりました。注文から配達までの概要は以下の通り(この場合は僅か3日で配達!);
場所日付・現地時間状況
某所2017/07/27配達完了
大阪2017/07/26 20:20最終配達の手配

2017/07/26 11:10輸入通関

2017/07/26 10:19空港到着
アンカレッジ、アラスカ州2017/07/25 9:05空港出発

2017/07/25 7:03輸出通関

2017/07/25 5:55空港到着

2017/07/25 2:16空港出発
オンタリオ、カリフォルニア州2017/07/24 22:47空港到着
シアトル、ワシントン州2017/07/24 20:18空港出発
ケント、ワシントン州2017/07/24 15:19現地営業所スキャン
セラー (出荷)2017/07/24 18:31 (ET)UPSへの引き渡し

※ これはかなり理想的なケースだと思われ、Amazon USA で購入しても必ずこんなに速く配達されるわけでは無さそうです。というのも、Amazon USA でポチッとしたのが月曜(平日)で、即日セラーから出荷されたこと、東海岸のセラーから日本向け飛行機が飛ぶ西海岸までの輸送が陸送だけでなく航空便が使われたこと、さらにアメリカの東海岸から西海岸までの3時間の時差に助けられて見かけ上時間が短縮されていること、そして日本向け飛行機での配送が即日行われたこと(一旦貨物が集まるまで滞留させなかったこと)、日本到着時が平日で即日通関されたこと、など全ての良い要因が重なっているからです。
  • 概要: 国内のショッピングサイトでは fx-CG50 の並行輸入品の扱いが見つからなかったので、今回はアメリカの eBay で直接購入しました。海外品を買うには、セカイモンeBay などで購入して国際貨物で送って貰うことになります。このような個人輸入の場合、国際貨物の扱いや輸入手続きは業者が全てやってくれるので、個人輸入という実感はあまりありません。セカイモンは手数料を取って国際貨物や輸入通関まで全て面倒をみてくれ、さらに日本語で注文できるので、かなり楽です。eBay の場合は国際配送を引き受けるセラー(Seller、業者)が出品している場合は購入者は何もしなくて良いのですが、国際配送をやっていないセラーから買う場合は、国際配送業者を別途利用する必要があります。
  • eBay での商品選び: eBay の場合は、実績と評判のあるセラーから購入した方が良いと思います。Top-rated Seller (高評価のセラー) といった表示があるので、そのセラーのページで確認して自分なりに納得してから決められます。新品 (new in box) といった表示で新品が確認できない時は中古の可能性もあるので、確認しましょう。fx-CG50 の場合でも、安いものの中には注意深くみてゆかないと中古品であるケースがあり、紛らわしいと感じるものがあったので、新品が欲しい場合は要注意です。
私の場合は、fx-CG50 新品の本体価格が¥10,915、輸送費が ¥2,316 でした。輸送費用の傾向として、ヨーロッパの方が北米よりもかなり高いので、北米のセラーから購入する方がお得のようです。
  • セカイモンと eBay のコストの違い: セカイモンは、 eBayと提携しているので eBay と同じセラーからの同じ商品が同じ本体価格で購入できます。違いは、ページでの提示期間と配送手数料です。セカイモンの方が早く締め切る傾向があり、購入する場合は即決に近い判断が必要なケースが多いようです。日本語で買える安心感、国際配送と通関手続きがお任せのセカイモンは、手数料分の価値はあると思います。英語でも良いなら eBay の方が商品提示期間が長く多少でも余計な手数料を取られないので、費用面でもお得です。
  • セカイモンと eBay の配送期間の違い: いずれにしても配送時間は最低2週間と普通の国際便よりは時間を要します。今回 eBay USA を初めて使って、とにかく時間がかかることがよく分かりました。アメリカ国内のセラーから国際発送を行うセンターまで陸送で一旦貨物が集められ(カリフォルニアから日本とは逆方向のケンタッキー)、そこでスグ日本へ送ることはなく、1週間程度滞留させるので、ここで余計な時間がかかります。国際便のコストを下げるためにある程度貨物をまとめる必要があるのだと理解しています。ポチッとしたから手元に届くまでの時間については、セラーの場所と国際配送センターの場所に依存するようで、どちらが速いかについては、なんとも言えないと思います。アメリカと日本の祝祭日の影響もありますので、ポチッとした日にも依存します。国際配送センターで多くの日本向け貨物がまとまれば滞留日数が短くなる可能性もあるでしょう。
私の場合は、
- 7/2 (日): ポチッとし決済
- 7/3 - 7/4 (月~火): 7/4が独立記念日で 7/3 も休みで連休、セラーはお休み
- 7/5 (水):セラーが出荷、UPS サンフランシスコセンターが受け取る
- 7/6 (木):UPS コネチカットセンターを通過 (アメリカ国内はトラック輸送と思われる)
- 7/7 (金):ケンタッキー州アーランガーにある国際配送センターに到着
- 7/13 (木):国際配送の FedEx に引き渡し。センターに6日も滞留していた
      ※ eBayに問い合わせたら、通常センターに1週間は留め置くと回答あり
- 7/14 (金):一旦テネシー州のメンフィスに寄り道 (おそらくここまでは陸送と思われる)
- 7/15 (土):メンフィスで輸出通関
- 7/16 (日):成田到着
- 7/17 (月):輸入通関、FedEx横浜営業所に到着
- 7/18 (火):横浜営業所で、何故だか丸一日滞留
- 7/19 (水):配達完了

  • 決済について:セカイモンは eBay と提携しており、eBay と PayPal は同じ傘下の会社なので、セカイモンでも eBay でも PayPal での決済ができます。PayPal での決済は、事前登録が必要ですが、決済手続きは日本語で可能、決済の記録も日本語で確認できるのが利点です。私は eBay で商品を探して、そのまま PayPal で決済しました。
  • eBay USA のカスタマーサポート:7/2に決済が済んでいるのに 3日たってもトラッキングの状況に変化がないことの問い合わせ、それから国際配送センターからの配送が6日間も留め置かれている状況の問い合わせを行いました。eBayのページからフォームを使って質問を送ったところ、いずれも12時間以内に返信があり、考えられる次の問い合わせを行うための細かい案内も付されていて、レベルは高いと思います。
 
<目次に戻る>
到着したパッケージ

fx-CG50 Package 1  fx-CG50 Package 2 

ブリスタパッケージは、分厚いプラスチックがガッチリと融着されているので、楽には開けられません。しっかりしたハサミで周囲をカット。

items inside package 

fx-CG50 本体、Quick Start Guide、単四アルカリ電池4本 (試供品)、PCリンク用のUSBケーブル、ダウンロードや登録(アメリカのみ) の説明、保証書が入っています。CD や 3Pinケーブルは同梱されていません
 
 
<目次に戻る>
外 観

CG50 & JP900 1  

fx-JP900 (右) とそっくりです。
四角いオーソドックスな形状は落ち着きを与え、長く使っても飽きが来ない感じで、好きなデザインです。

キーの上の印刷された文字ですが、老眼の始まった私には、fx-JP900 の印刷はとても見づらいのですが、fx-CG50 ではフォントが大きく色のコントラストも向上して、見やすくなっています。

CG50 & JP900 2 

fx-CG50 に fx-JP900 を重ねてみます。fx-CG50 の大きさを感じます。

CG50 & JP900 3  CG50 & JP900 4 

fx-CG50 と fx-JP900 をカバー付き (左) とカバー無し (右) で重ねてみたところ。厚みが3倍くらい違うことが分かります。

写真では分かりにくいですが、筐体やカバーの表面は、fx-JP900 はツルツルのテカテカですが、一方 fx-CG50 は細かい凹凸があります。使っているウチに表目に細かい擦り傷が付いても、あまり目立たないのではないかと思います。

液晶部が一段低くなっていますが、保護ウィンドウが傷つきにくい感じなのは良いです。
というのも、fx-CG20 の透明な上部パネルは、まともに表面処理をしておらず簡単に傷つきます。私の fx-CG20 は新品購入時に既に細かい傷が多く付いていましたが、不良とは認めて貰えず製造上に発生するもので、こういうものだとの説明でした。この点が改善されたと思います。

foot  rubber foot 
fx-JP900 は成形で作った出っ張りで4カ所の足にしています。一方、fx-CG50 はゴム足です。但し fx-9860GII や fx-CG20 の黒いゴム足ではなくて、半透明になっています。黒いゴム足は、使い込んでくるとテーブルやノートにくっついて、黒い跡が残ることがあるのですが、その問題が無くなりそうです。

所有したくなるデザインの電卓だと思います。
 
 
<目次に戻る>
他機種との比較

Graphing Calcs 
左から、fx-CG50、fx-CG20、fx-9860GII、fx-5800P

 fx-CG50fx-CG20fx-9860GIIfx-5800P
 電池 単四 x 4 単四 x 4 単四 x 4  単四 x 1
 電池寿命 (メーカー測定基準) 170 時間 140 時間 200 時間 1年
 サイズ (mm) 18.6x89.0x188.5 20.6x89.5x188.521.2x91.5x184 15x82x163
 重さ (g) 230 230 225 150
 液晶ディスプレイ解像度
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
 96 x 31 pixel
・---
・4 x 16 文字
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁 15桁
 プログラムメモリ容量 最大 ~61 KB 最大 ~61 KB 最大 ~62 KB 最大 ~28.5 KB
 メインメモリ (利用可能) ~61 KB ROM ~61KB ROM ~64 KB ROM ~26.5 KB
 ストレージメモリ  ~1.6 MB SDRAM ~1.6 MB SRAM ~1.5 MB SRAM ---
 プログラムファイル名 最大8文字 最大 8文字 最大 8文字 最大 12文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~118 MHz ~59 MHz ~29 MHz ? MHz
 - FLL:  14,75 MHz x900 14.75 MHz x900 14.75 MHz x900 ---
 - PLL:  FLLx16, 235.93MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz ---
 - IFC: CPUコアクロック 1/2 PLL, 117.96MHz 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz ---
 - SFC: SuperHywayバスクロック 1/4 PLL, 58.98MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz ---
 - BFC: メモリバスクロック 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz 1.8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/8, 29.49MHz 1/16, 14.75 MHz 1/16, 14.75 MHz ---
sentaro様作成の カシオグラフ関数電卓用チューンアップツールを使用した結果、マニュアル記載の内容によります。


地味な改善 - バーコード &  シリアル のラベル [2017/08/06 追記]
fx-9860GII や fx-CG20 は、電卓裏側に バーコードとシリアルのラベルが貼り付けられています。当然ながら長らく使っているとラベルの印刷が摺り切れて読めなくなります。fx-CG50 では電池ケースの内部にラベルを貼っているので、摺り切れることはありません。地味だが大切な改善だと思います。

fx-9860GII Barcode & Serial Label fx-CG50 Barcode & Serial Label 
左の fx-9860GII のラベルは印刷が見えなくなっている。右の fx-CG50 のラベルは電池ケースの中に貼ってある。
 
 
<目次に戻る>
ソフトウェア ダウンロード

PCリンクソフト、出荷時に無いアドインは、CASIO Worldwide Education Website (WEW) からダウンロードできます。このページから
  • 上のメニューで Support をクリック、
  • 言語として English を選び (日本語が無い)、
  • Graphic Model を選び、
  • SOFTWARE LICENSE AGREEMENT で Accept をクリックする
これで、fx-CG50 Series のリソースダウンロードのページに行けます。
 
 
OSアップデート [2017/09/26 更新]
fx-CG50 本体で、[MENU] - [System] - [F4] (Version) で確認すると、OSバージョンは 03.00.0202 となっていました。
fx-CG50 のOS が 3.10 にアップデートできます。Casio World Education Website の Download Resoureces のページからダウンロードアプリと作業説明(PDF) がダウンロードできます。
 
 
<目次に戻る>
取扱説明書 [2018/09/23 更新]
日本語取扱説明書は、カシオ取扱説明書ダウンロードのページ から入手できます。

英語等多国語版は、Casio World Education Website の Download Resources のページから、User's Guide for fx-CG Series Handheld をクリックすると、各国語のハードウェアマニュアルとソフトウェアマニュアルがあるので、そこから入手できます。日本語版取扱説明書がまだ無かった時は、English 版をダウンロードしました。
- [PDF File] User's Guide Version 3.0 -Hardware- (English)
- [PDF File] User's Guide Version 3.0 -Software- (English)
 
 
<目次に戻る>
アドインプログラム
fx-CG50 のリソースダウンロードのページで、Add-in Software をクリックし、各種アドインプログラムをダウンロードできます。ダウンロードできるアドインの中で、私の fx-CG50 に購入時にインストールされていなかったのは、Probability Simulation だけです。
アドインのインストールマニュアル - 日本語版
Add-in Software の下の User's Guide for fx-CG Sries Handheld のさらに下に  [PDF File] Installation Guide をダウンロードしてみると、各国語別のガイドがありますが、ナント日本語版が含まれていました。
 
 
<目次に戻る>
サポートソフトウェア
Screen Receiver - 電卓画面をPCで表示するソフト
fx-CG50 のリソースダウンロードのページで、Support Software をクリックし、Screen Receiver がダウンロードできます。バージョンは 3.02 で、fx-CG20 /10 用と同じバージョンで、共通して使えます。
 
  
<目次に戻る>
データ転送
 
PCとのリンク


標準添付の USBケーブルを使います。
USBケーブルで fx-CG50 と PC を繋ぐと、fx-CG50 の液晶での表示が接続モード (Connection Mode) になります。
ここで、[F1] (USB Flash :[F1]) を押すと、ポップアップウィンドウで Preparing USB と表示され、少し待つと接続完了です。

後は、エクスプローラで fx-CG50 がドライブとして表示されるので、PC上と同じ操作でファイルのやりとりができます。 

PCLink_PCDisp 
fx-CG50 内のフォルダ / ファイル はこのように表示されます。ここで、System Volume Information フォルダがありますが、fx-CG50 ドライブに名前を付けたことで作成されたものです (日付けを見れば後から作成されたことが分かりますね)。

fx-CG50 を接続した時のドライブには最初は名前が無いので、FX-CG50 と名前を付けました。ドライブを右クリックしてプロパティを選び、そこで名前を入力できます。

CG50 PCLink Drive Name 

さてPCと接続中の fx-CG50 の液晶画面には、fx-CG20 には無かった新しい === Caution === 画面 が Tips 画面 (fx-CG20と同じ) と交互に表示されます。ここでは、「ケーブルを抜く前にPCのUSB接続を終わらせてください」と書かれています。Windows PCの通知領域 (タスクトレイ) で「ハードウェアを安全に取り外してメディアを取り出す」で [CASIO MassStrage Device の取り出し] をクリックします。外付け USBハードディスクや USBメモリの取り出しと同じ操作です。
 
 
<目次に戻る>
電卓同士のデータ転送

3Pinコネクタの接続ケーブル (SB-62) を使って2つの電卓を繋ぎ、接続する両方の電卓で CABLE (ケーブルの選定) で [F2] (F2:3Pin cable) を設定後、一方で TRANSMIT (送信)、他方で RECV (受信) に設定すれば、データのやりとりができます。このケーブルは、fx-9860GII には標準添付されていましたが、fx-5800P、fx-CG20 そして fx-CG50 には標準添付されていません。以前 SB-62 のみを購入した時は ¥2,700 でした。

プログラムを含むデータのやりとりができるのは、fx-9860G、fx-9860GII、fx-CG20/10、fx-CG50 (および fx-9860G あたり以降のグラフ関数電卓) で、Menu に Link 項目があって、3Pin コネクタが付いている機種です。なお、fx-5800P 同士なら、このケーブルを使ってデータ転送可能ですが、fx-5800P と グラフ関数電卓とのデータ転送はできません。

詳しくは、Sofware Manual に書かれているので確認できますが、使ってみれば分かると思います。

[2017/07/28 追記]
fx-CG50 から fx-9860GII へ転送すると、ファイル形式は g3m から g1m へ自動変換され、カラーや細線設定など、fx-9860GII で未対応のコマンドは @ に自動的に置き換えられます。
 
 
<目次に戻る>
バックアップ

万一に備えて、電卓内部のデータをバックアップしておくことを勧めます。PCに保存フォルダを作り、PCとのリンク機能を使って電卓内のデータをPCの保存フォルダに丸ごとコピーしておきます。
PCLink_PCDisp 
購入時のバックアップ、そして適宜バックアップをすると良いと思います。特にオーバークロックを行う場合は、エラー発生時に電卓のリセットが必要になりプログラム、データやプログラムが失われることもあるので、バックアップしてあればこれらを簡単に戻せます。
 
 
<目次に戻る>
ハードウェア

CG50 & CG20 
主に fx-CG50 と fx--CG20 を比較します。
 
 
キー入力
キー配置や各キーに割り当てられている機能は、fx-CG20 と全く同じ。
 
 
<目次に戻る>
液晶表示
液晶のサイズや精細度も fx-CG20 と同じ。
手持ちの fx-CG20 と fx-CG50 を比べる限りでは、明るさや色合いが少し異なっています。

LCD CG50 & CG20 
左が fx-CG20、右が fx-CG50

同じ明るさ設定で比較して気がつくのは、右の fx-CG50 は黄色みがかって少し暗く見えます。fx-CG50 で明るさ設定を 3/5 から 4/5 に変えると明るさは同等になりますが、それでも黄色みがかっています。消費電力低減への寄与もありそうです。

[2017/07/23 追記]
このカラー液晶の輝度と色については、バラツキがあるようです。sentaro様所有の個体は逆の傾向だとコメントを頂きました。
 
 
<目次に戻る>
関数電卓としての機能

fx-CG50 のキーの種類と数、および配置は、fx-CG20 と同一です。fx-9860GII には [SHIFT] [5] (FORMAT) が有りませんが、それ以外は同じです。関数機能も同じです。計算の内部桁が15桁と同じで、各関数の精度範囲も同じなので、fx-CG50 の関数電卓としての使い勝手は fx-CG20 や fx-9860GII と同じです。
 
 
<目次に戻る>
ユーザーデータのバックアップ機能
カシオのスタンダード関数電卓は電源をオフにすると、作業内容やユーザーデータが消えますが、fx-CG50 は各モードでのユーザーデータは一旦電源を切ってもバックアップされます。他のプログラム電卓 fx-5800P、fx-9860GII、fx-CG20 もバックアップされます。

資格試験で使えると称しているスタンダード関数電卓は、数式などが保存できると都合が悪いからバックアップできない仕様になっていると思われます。バックアップ機能だけでも、プログラム電卓を関数電卓として使う価値があると思って、私は日常的にプログラム電卓を関数電卓として使っています。
 
 
<目次に戻る>
3桁区切り表示
カシオの最新のスタンダード関数電卓 fx-JP900 / 700 / 500 では、関数電卓として3桁区切りが登場しました。一般電卓には3桁区切りは普通に搭載されている使い勝手の良い機能なので、登場が遅すぎるようにも思います。

これまでのプログラム電卓には3桁区切り機能は無く、fx-CG50 に3桁区切り機能の登場を期待しましたが、残念ながら対応していません。fx-CG50 のソフトウェアが fx-CG20 から殆ど変わっていない結果とも言えます。デザインは fx-JP500/700/900 を踏襲したので、3桁区切りについても踏襲して欲しいわけで、OSアップデートによる追加対応という現実的な方法もあります。カシオには是非対応して頂きたいと思います。

[2017/11/08 追記]
Casio Basic での出力コマンドにも3桁区切り機能がありません。しかし、作ったプログラムに3桁区切り出力機能を付加することは出来ます。
Casio Basic入門59, Chapter 10-5:3桁区切りサブルーチン グラフ関数電卓版
 
 
<目次に戻る>
複素指数関数
複素数を表示するように設定して、計算させてみると、fx-5800P はエラー、fx-9860GII と fx-CG20 は正しく計算結果を表示します。fx-CG50 でも同様に複素指数関数を正しく計算します。

 CompCalc1 CompCalc2 
 
 
<目次に戻る>
積分関数の処理速度
 
積分計算速度の比較をしてみます (Rad モード)。
機種積分1積分2
fx-JP9005.5秒48.7秒
fx-5800P10.1秒56.7秒
fx-9860GII (SH4A)1.5秒8.4秒
fx-CG201.0秒5.8秒
fx-CG500.7秒3.2秒

積分計算は fx-CG50 で高速化しています。三角関数の計算が特に高速化していることが分かります。
 
 
<目次に戻る>
周期関数の積分 [2020/05/23 修正]
積分計算にガウス・クロンロッド法が使われていることから、このアルゴリズムが苦手な多項式で表せない関数の代表選手として周期関数の積分を行って、タイムアウトする限界を比較してみます (Rad モード)。

積分3
機種計算できる nタイムアウトする n
fx-JP900n ≦8n > 9
fx-5800Pn ≦ 8n > 9
fx-9860GIIn ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-CG20n ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-CG50n ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)

fx-CG50 は、fx-CG20 や fx-9860GII と同じなので、積分計算の内部ロジックは変わっていないようです。
 
 
<目次に戻る>
Casio Basic の互換性

当ブログは Casio Basic がメインテーマなので、少し詳しく解説します。

fx-CG50 に搭載されている Casio Basic は、2006年に発売された fx-5800P とそれ以降に発売されたグラフ関数電卓が同じカテゴリに属します。これらに搭載された Casio Basic は、構造化プログラミング可能で意外に高機能です。当ブログでは、このカテゴリを新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2006年発売 fx-5800P
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20と同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50

新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

fx-CG50 搭載の Casio Basic は、機能面で fx-CG20 と異なる点が見つかりません。現時点では完全互換と言って良いと思います。そこで、fx-CG20 について、fx-9860GII や fx-5800P との比較を行った記事がそのまま fx-CG50 に該当します。

 ⇒ fx-CG20 の概要
 ⇒ fx-9860GII への移植 - 厄介な旧来の命令

当ブログで公開している Casio Basic入門逆引きCasio BasicCasio Basicコマンドリファレンスプログラムライブラリ は、fx-CG20 に関するものは、そのまま fx-CG50 に適用できます。
 
 
<目次に戻る>
カタログ機能

fx-CG50 には fx-CG20 と同様に使えるコマンドの一覧を検索して入力できるカタログ機能が備わっています。コマンド入力ができるモードで [SHIFT] [4] (GATALOG) を押すと、カタログ画面が現れます。

Catalog 1 CG20 Catalog 1 

左が fx-CG50 で、右が fx-CG20 です。

左の画面には、HISTORY というメニューと 表記 "Catalog" の右に検索入力欄が増えています。過去に検索して入力したコマンドを再入力するためには HISTORY 機能は大変便利です。 検索入力に1文字入れると絞り込み検索が行われるので、コマンドがうろ覚えの時に便利です。

CATメニューを選ぶとジャンル別一覧が現れます。

atalog Graph 1 

例えば 4: Graph でジャンルを選ぶと以下の画面になりますが、ここで fx-CG50 と fx-CG20 で違いがあります。

Catalog Graph 2 CG20 Catalog Graph 2 

左が fx-CG50、右が fx-CG20 です。

右の fx-CG20 では、コマンドのリストが表示されます。
左の fx-CG50 で表示されるリストは、コマンドではなくて説明です。この下のレベルでさらに説明のリストが現れることもあります。かなり分かり易く改善されています。

なお、CAT メニューから 1:All を選ぶと、全てのコマンドがアルファベット順に表示されます。このリストを fx-CG50 と fx-CG20 で比較した結果、同一でした。Casio Basic 使えるコマンドの種類が全く同じだと分かります。 
 
 
<目次に戻る>
Casio Basic の処理速度

fx-CG20 向けの作成したプログラムが そのまま fx-CG50 で動作するのは、ユーザーとしては助かります。fx-CG50 では処理速度の向上が見らるので、具体的に調べてみます。

 計算主体

PRIME - 素因数分解

ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動すると...

Prime1 
数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。

Prime2 Prime3 
表示が出たら、最後の行を示すので、これで素因数分解の全結果となります。

このプログラムの実行中は、ビジーマーカー以外に表示の更新が無いので、計算速度の比較に向いています。今回は、以下の10桁の数の素因数分解の計算時間を比較します。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG50 の画面は以下のようになります。

   Prime4 Prime5 

機種別処理時間の比較
fx-CG50fx-CG20fx-9860GIIfx-5800P
46秒63秒89秒444秒
11.361.939.65
0.7312.677.05
0.520.7118.73

fx-CG50 の計算処理は、fx-CG20 より 30% 程度速くなっています。
  
<目次に戻る>
動きのあるテキスト出力

PYTHA - ピタゴラス数探索

ダウンロード

- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - ピタゴラス数 を参照。

このプログラムを起動すると1つめのピタゴラス数を表示して一旦停止します (左の画面)。
2行目の EXE:Next (-):Stop に変化するまで [EXE] キーを長押しすると、連続的に次々とピタゴラス数が表示し続けます。
そして、右の画面のように500個のピタゴラス数を探索して表示するまでの時間を計って比較します。
    Pytha 1 Pytha 500

[EXE] キーを長押しすると連続モードになって、A、B、C 1組のピタゴラス数が、次々に変化します。つまり、このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。
そこで、500個のピタゴラス数が見つかるまでの時間を、機種別に比較してみました。

機種別処理時間の比較
fx-CG50
fx-CG20
fx-9860GII
fx-5800P
87秒
185秒93秒
441秒
12.121.075.07
0.4710.502.38
0.941.9914.74
0.200.420.211

fx-CG50 は、fx-CG20 の2倍程度の処理速度、fx-9860GII とほぼ同等の処理時間。
fx-CG20 は、動きの有るテキスト表示が重すぎて、実用プログラムを走らせるには向かなかったが、その問題が解決されています。

液晶画面の右上にビジーマーカーが表示されますが、fx-CG20 では常に表示し続けているのに対して、fx-CG50 では表示されていない時間が長い点に気付きました。fx-CG50 では ディスプレイへの転送をコマンドごとでなくてある程度まとまって行っている可能性がありそうです。それに伴ってビジーマーカー表示が間欠的になっているのかも知れません。
 
<目次に戻る>
動きのあるグラフィック出力

MONTECAR - モンテカルロ法による円周率計算

ダウンロード
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

 Montecar_1 Montecar_2 

 Montecar_3 Montecar_4 

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、動きのあるテキスト表示と動きのあるグラフィックス描画を同時に行います。

そこでランダムに500回点を打つまでの時間を、機種別に調べて比較してみました。
機種別処理時間の比較 
fx-CG50
fx-CG20
fx-9860GII
174秒
429秒
135秒
12.470.78
0.4110.31
1.23.181

fx-CG50 は、fx-CG20 の 2.5倍の処理速度を達成。しかし fx-9860GII の 80% 程度の処理速度しかありません。

グラフィック表示の処理時間は fx-CG50 でかなり改善されているとは言え、あまり得意な処理ではないことが分かります。
カシオのグラフ関数電卓は、数学教育目的でグラフを表示することが主眼で、速い動きで変化示す処理は重視していないんでしょう。
 
<目次に戻る>
さらなる高速化

fx-CG50 は、fx-CG20 の極めて遅い出力処理を改善していることが分かったのですが、それでもゲームなどのピクセル単位での描画が多いプログラムでは全く不十分です。Casio Basic をより高速化するには、現在のところ2つの可能性があります。1つはチューンアップ (オーバークロック) による高速化、もう一つはアドイン版 Casio Basic (C.Basic) の利用です。

チューンアップ
これまで、fx-9860G、fx-9860GII そして fx-CG10 PRIZM / fx-CG20 それぞれの専用オーバークロックツールが、sentaro様により提供されてきています。いずれも比較的安全性が確保されており、私も愛用しています。但しオーバークロックは、ROM 内容が異常になったり、いずれかのチップが損傷をうける可能性があり、これらの結果電卓が正常動作しなくなった場合でもメーカー保証を受けられないので、自己責任で利用しましょう。

Casio グラフ関数電卓を限界までチューンアップ

本ブログでは、作者の sentaro様へ直接質問できるように、以下のエントリーがあります。このエントリ-では、fx-CG20 用の Ptune2 の紹介もしており、サポートも受けられます。
 ⇒ fx-9860GII のオーバークロック - Ftune2 -

fx-CG50 用のオーバークロックツール Ptune3 の開発も始まっていますが、まだβ バージョン段階で、今後一定の安全性を確保しつつさらに高速化できる可能性があります。そこで安定版リリースまでは、以下のエントリ-で情報交換を行います。
 ⇒ fx-CG50 のチューンアップ

ちなみに、各機種をチューンアップして上で紹介した モンテカルロ法による円周率計算の処理時間を比較します。

チューンアップした機種別処理時間の比較 
fx-CG50 tuned by Ptun3
fx-CG20 tuned by Ptune2
fx-9860GII tuned by Ftune2
97秒 (174秒)
108秒 (429秒)
23秒 (135秒)
1.8倍高速化4倍高速化5.9倍高速化
11.110.24
0.9010.21
4.214.701
カッコ内は標準での処理時間

チューンアップは、CPUコアクロックだけでなく、メモリバスクロック、I/Oバスクロック、ウェイトなどを機種に応じて調整します。ここでは、チューンアップの潜在能力を示すだけなので、個別のチューンアップ設定は割愛します。

fx-9860GII の標準での処理時間が 135秒なので、fx-CG50 も fx-CG20 もそれ以上に高速化できています。fx-9860GII はチューンアップで桁違いに速くなっています (これが現時点での fx-9860GII の利点とも言えます)。fx-CG50 用の Ptune3 の今後の進展が楽しみです。
 
アドイン版 Casio Basic (C.Basic)
C.Basic は、現在のところ fx-9860GII 専用版のみの開発が続いています。開発者はチューンアップツールと同じ sentaro様です。

C.Basic は、純正Casio Basic のソースをほぼそのまま実行可能で、特にグラフィック描画の高速化は目を見張るものがあります。
どのくらい速いかは、ここ にある動画を見れば一目瞭然です。現在は、主に海外からの要望に応えつつ、バージョンアップが進んでいます。

現在では、fx-9860G シリーズ用の C.Basic for FX と fx-CGシリーズ用の C.Basic for CG が公開されています。
C.Basic のトップページ
C.Basic for CG のトップページ

[2017/11/01 追記]
なお、fx-CG50 向けの C.Basic for CG の開発が始まっています。C.Basic の処理速度はアドインに近いものになります。この記事では、同じロジックでアドインとCasio Basic のグラフィック描画速度の違いから C.Basic for CG のポテンシャルの高さを紹介しています。公開されるのが楽しみです。公開されています。

 




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: CasioBasicプログラム電卓、fx-CG50

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-9750GIII の概要

 
初版: 2020/05/24
更新: 2020/05/31


Casio fx-9750GIII POWER GRAPHIC 3 

2020年4月、北米(アメリカとカナダ)限定で fx-9750GIII が発売されました。
2020年3月にヨーロッパ限定で発売された fx-9860GIII とは色が違うだけで機能はほぼ同じ製品です。モデル名を見るだけでは北米とヨーロッパで販売されている fx-9750GII の後継機ではないかと思われるが、機能の点では fx-9860GII の後継機と言えます。

つまり、fx-9860GII の後継機として、ヨーロッパでは fx-9860GIII、北米では fx-9750GIII が発売されたと考えられます。

fx-9750GIII_large   fx9860GIII
  fx-9750GIII     fx-9860GIII

2020年5月24日現在、Amazon USA での fx-9750GIII の価格は $51.34、一方 Amazon France での fx-9860GIII の価格は €123.77 で、日本への送料がそれぞれ掛かります。fx-9750GIII が半額近く安い設定になっています。 fx-9750GIII は、機能と価格の点で、最も推奨するモノクロ液晶グラフ関数電卓です。2020/05/31 時点で7千円台で入手できます。

ヨーロッパ向けグラフ関数電卓の紹介ページ
 - CASIO INTERNATIONAL のグラフ関数電卓のページ
 - CASIO WORLDWIDW EDUCATION WEBSITE のヨーロッパ向けグラフ関数電卓のページ

北米 (アメリカとカナダ) 向けグラフ関数電卓の紹介ページ
 - CASIO USA のグラフ関数電卓のページ
 - CASIO WORLDWIDE EDUCATION WEBSITE の北米向けグラフ関数電卓のページ

現在のところ最も安く入手する方法は Amazon USA からの購入で、この状況は続くと思われます。管理人が購入した時は COVID-19 によるロックダウンの影響でアメリカから日本への配送が止まっていたので、セカイモンで購入しました。購入時に支払った総額は ¥7,651 でしたが、Amazon USA から購入すれば 本体 $51.34 + 国際輸送料 $18.48、為替レートが 1ドル = 108円とすれば、¥7,541、1ドル = 109円としても ¥7,610 となり、セカイモン価格以下になる可能性が高いと思います。為替レートと本体価格は随時変化するので、購入検討時に両者を比較することをお勧めします。

なお、日本国内市場ではモノクロ液晶のグラフ関数電卓 fx-9860GII は既に販売していないので、国内販売の後継機種がどうなるのか気になるところです。

fx-9860GIIfx-9860GIII は、モデル名の末尾の I が1つ違うだけなので分かりにくいです。


はじめに

Casio Basic の機能に着目すると、以下に列挙したモデルが同じカテゴリに含まれます。

 - 2006年発売 fx-5800P 
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII (国内販売中止)
 - 2011年発売 fx-CG10 PRIZM (北米のみ)
 - 2012年発売 fx-CG20 (fx-CG10 PRIZM の約1年後)
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米先行、2017/10/20国内発売)
 - 2020年発売 fx-9860GIII (ヨーロッパ限定発売)
 - 2020年発売 fx-9750GIII (北米限定発売)

fx-9860GIIIと fx-9860GIII / fx-9860GII との比較
 fx-9750GIIIfx-9860GIIIfx-9860GII
 電池 単四 x 4 単四 x 4 単四 x 4
 電池寿命 (メーカー測定基準) 230 時間 230 時間 200 時間
 サイズ (mm) 18.7 x 83.5 x 175.5 18.7 x 83.5 x 175.5 21.2 x 91.5 x 184
 重さ (g) 190 190 225
 液晶ディスプレイ
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 ・バックライト
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
なし
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
なし
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
・あり
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁
 プログラムメモリ容量最大 ~62 KB 最大 ~62 KB 最大 ~62 KB
 メインメモリ (利用可能) 62 KB ROM ~62 KB ROM ~64 KB ROM
 ストレージメモリ  ~3 MB SDRAM ~3 MB SDRAM ~1.5 MB SRAM
 プログラムファイル名 最大8文字 最大8文字 最大8文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~59 MHz ~59 MHz ~29 MHz
 - FLL:  14.75 MHz x900 14.75 MHz x900 14.75 MHz x900
 - PLL:  FLLx16, 235.93 MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz
 - IFC: CPUコアクロック 1/4 PLL, 58.98 MHz 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz
 - SFC: SuperHywayバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz
 - BFC: メモリバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/16, 14.74 MHz 1/16, 14.74 MHz 1/16, 14.75 MHz
 PCリンク Screen Receiver  Screen Receiver  FA-124
 OSバージョン 3.21  3.21  2.09
 Casio Basic あり あり あり
 Python あり あり なし

fx-9750GIII は色以外は fx-9860GIII とほぼ同じだと分かります。

fx-9860GII からの主な変化を列挙します;
CPUクロックは、fx-9860GIII と同様に fx-9860GII の倍になりました。
ストレージメモリは、fx-9860GIII と同様に fx-9860GII の倍になりました。
PCリンクが fx-CGシリーズと同様にUSBマスストレージになり、PCリンクがとても楽です。
 fx-9860GIII と同様に Pythonが追加されています。
サイズが小さく、薄くなり、軽くなりました。

以下は、改悪と思われる変化です; 
液晶のバックライトが無くなりました。
液晶サイズが小さくなりました。
液晶画面は、fx-9860GIII と同様に fx-9860GII より視認性が低下、応答性も悪化しました。

個人的には、十分に明るい場所で使う限り液晶画面の視認性は気にならず、黒い筐体は白よりも気に入っています(汚れが芽出しにくい)。液晶の問題を除けば fx-9750GIII は良いモデルだと思います。特に小型・薄型になったことで、1万円未満で国内販売されれば、fx-5800P の代わりに使えるモデルになるかも知れません。
 

 
目 次

1. 到着したパッケージ

2. 外 観

3. ソフトウェアダウンロード
 3.1 OSアップデート
 3.2 取扱説明書
 3.3 アドインプログラム
 3.4 サポートソフトウェア

4. データ転送
 4.1 PCとのリンク
 4.2. 電卓同士のデータ転送

5. バックアップ

6. ハードウェア
 6.1 液晶画面の応答性悪い NEW!

7. 関数電卓としての機能 [2020/05/31 追記]

8. Casio Basic の互換性

9. カタログ機能

10. プログラムリスト

11. Casio Bsic の処理速度
 11.1 計算主体のプログラム
 11.2 動きのあるテキスト出力プログラム
 11.3 動きのあるグラフィック出力プログラム

12. さらなる高速化
 12.1 オーバークロック
 12.2 アドイン版Casio Basic (C.Basic)
 

 
到着したパッケージ

fx9750GIII_Package_1 fx9750GIII_Package_2 
分厚いプラスチックがガッチリと融着されているものではなく、楽に開けらます。
TI-84 Plus が想定ライバル機のようです。

fx9750GIII_Delivered 
パッケージを開けると、fx-9750GIII 本体、英語版 Quick Start Guide、単四アルカリ電池4本 (試供品)、英語版保証書、英語版注意書きが入っています。PCリンク用のUSBケーブル、電卓同士を接続する3Pinケーブル、CDは同梱されていません。

 
<目次に戻る>
外 観

fx-9750GIII_large   fx9860GIIIfx991es_2
  fx-9750GIII     fx-9860GIII    fx-991ES PLUS
                          2nd edition


fx-9750GIII (写真左) と fx-9860GIII (写真中央) は、色以外は全く同じデザインです。
ところで、スタンダート関数電卓 - ESシリーズ 2nd edition - 例えば fx-991ES PLUS 2nd edition (写真右) とデザインがよく似ており、カシオの最新モデルの共通コンセプトのようです。また、このスタンダート関数電卓のサイズと大きく変わらず、小型化が進んでいることが分かると思います。

9750GIII_Backside 9750GIII_Cover 
fx-9750GIII のケース裏側のデザインは、凝った美しい凹凸模様が入っています (fx-9860GIII と同様)。模様の中心にリスタートボタンがあります。ハードカバーは CASIO の刻印が入っているだけのシンプルなデザインになっています。

なお、ケース裏側をよく見ると MADE IN THAILAND とあるので、カシオもいよいよ脱中国に動いているのかも知れません。

 
<目次に戻る>
ソフトウェア ダウンロード

 
OSアップデート 
fx-9750GIII 本体で、[MENU] - [System] - [F4] (Version) で確認すると、OSバージョンは 03.21.0200 となっていました。
今のところ、これが最新です。

 
<目次に戻る>
取扱説明書 
日本語取扱説明書はまだ公開されていません。

英語版は、Casio World Education Website の Download Resources のページからダウンロードできます。
- fx-9750GIII のマニュアル
 
<目次に戻る>
アドインプログラム
グラフ関数電卓のDownload Resourcesのページで、SOFTWARE LICENSE AGREEMENT に [Accept] クリックすると、OS、マニュアルと各種アドインプログラムをダウンロードできます。アドインの中で、購入した fx-9750GIII にインストールされているのは Geometry のみです。

なお、ここで OS アップデートファイルもダウンロードできますが、購入した製品にインストールされている Ver 3.21 よりも古いものなので、今はダウンロードの意味がありません。
 
<目次に戻る>
サポートソフトウェア
Screen Receiver - 電卓画面をPCで表示するソフト
Screen Receiver はPC画面に電卓の画面を表示するだけでなく、画面イメージを画像ファイルで保存できます。fx-9750GIIIDownload Resources のページで、Support Software をクリックし、Screen Receiver がダウンロードできます。バージョンは 3.02 で、fx-9860GIIIfx-CG20 /10 用と同じバージョンで、共通して使えます。

  
<目次に戻る>
データ転送
 
PCとのリンク


標準添付の USBケーブルを使います。
USBケーブルで fx-9750GIII と PC を繋ぐと、fx-9750GIII の液晶での表示が接続モード (Connection Mode) になります。
ここで、[F1] (USB Flash :[F1]) を押すと、ポップアップウィンドウで Preparing USB と表示され、少し待つと接続完了です。

後は、エクスプローラで fx-9750GIII がドライブとして表示されるので、PC上と同じ操作でファイルのやりとりができます。 

Calc_Drive 
fx-9750GIII 内のフォルダ / ファイル はこのように表示されます。上の画像は、Ftune3C.Basic がインストールされた状態のものです。

fx-9750GIII を接続した時のドライブには最初は名前が無いので、FX-9860GIII と名前を付けました。ドライブを右クリックしてプロパティを選び、そこでドライブの名前を入力できます。

E_Drive_9750GIII 

アドインプログラムのインストールは、ドライブのルートにアドインファイルをコピーします。リンクを終了するには、Windows PCの通知領域 (タスクトレイ) で「ハードウェアを安全に取り外してメディアを取り出す」で [DEVICE の取り出し] をクリックします。外付け USBハードディスクや USBメモリの取り出しと同じ操作です。

 
<目次に戻る>
電卓同士のデータ転送

3Pinコネクタの接続ケーブル (SB-62) を使って2つの電卓を繋ぎ、接続する両方の電卓で CABLE (ケーブルの選定) で [F2] (F2:3Pin cable) を設定後、一方で TRANSMIT (送信)、他方で RECV (受信) に設定すれば、データのやりとりができます。

プログラムを含むデータのやりとりができる他のモデルは、fx-9850Gシリーズ、fx-9860Gシリーズ、fx-9860GIIシリーズ、fx-9860GIIIfx-9750GIII、そして fx-CGシリーズで、Menu に Link 項目があって、3Pin コネクタが付いている機種です。なお、fx-5800P との間でのデータ転送はできません。

詳しくは、Sofware Manual に書かれているので確認できますが、使ってみれば分かると思います。

fx-CGシリーズ から fx-9750GIII へ転送すると、ファイル形式は g3m から g1m へ自動変換され、カラーや細線設定など、fx-9750GII で未対応のコマンドは @ に自動的に置き換えられます。

 
<目次に戻る>
バックアップ

万一に備えて、電卓内部のデータをバックアップしておくことを勧めます。PCに保存フォルダを作り、PCとのリンク機能を使って電卓内のデータをPCの保存フォルダに丸ごとコピーしておきます。
Backup_Factory_State 
上は、購入時のバックアップです。そして適宜バックアップをすると良いと思います。特にチューンアップツールでオーバークロックを行う場合は、エラー発生時に電卓のリセットが必要になりプログラム、データやプログラムが失われることもあるので、バックアップしてあればこれらを簡単に戻せます。

 
<目次に戻る>
ハードウェア
 
 
液晶画面の応答性が悪い NEW!
fx-9750GIIIfx-9860GIII のモノクロ液晶の応答性が悪いと感じています。

GIII_GII_G 
左から、fx-9750GIIIfx-9860GIIfx-9860G の液晶画面

fx-9750GIII の液晶画面は、少し見づらい感じがしています。せめてバックライトがあれば視認性が向上する筈ですが、何故かバックライトの採用が見送られていて、非常に残念です。

これらのモデルでは、実験の結果から実際に液晶画面の応答性が悪いことが分かりました。
sentaro様が作成された C.Basic for FX で動作するプログラムを走らせると分かります。
※ プログラムのダウンロード:
  https://egadget2.web.fc2.com/archives/fx-9860GII/C.Basic/LCD_Test.html

  3つのプログラムを同梱しています;
  ・LCDBALL.g1m
  ・LCDGRAY.g1m
  ・LCDSCRL.g1m

LCDBALLの実行結果
  ボールが跳ね回るテストプログラム、64fps固定。


グラフィックス描画の見え方の比較です。右が一番古い fx-9860G、中央が fx-9860GII、左が一番新しい fx-9750GIII です。一番左の fx-9750GIII が最も残像が多くボールの移動が長く尾を曳くように見えます。そして一番右の fx-9860G が最も残像が少ないことが分かります。fx-9860GIIIfx-9750GIII とほぼ同様の結果になります。つまりモデルが新しくなるにつれて、液晶の応答性が悪くなっています。プログラムは 64fps で表示していますが、YouTubeにアップした動画は 30fpsなので実際の見え方を正しく再現してません。それでも残像の違いは顕著に分かります。

LCDSCRLの実行結果
 縦横スクロールで文字の見え方テストプログラム。
 一番速いのから順に128fps、64fps、32fps、16fpsとなってる。  


文字の見え方の比較です。Youtubeにアップした動画は 30fps なので、実際とはかなり違って見え、縦横スクロールでの文字の見え方の違いはとても顕著です。fx-9750GIII は残像が激しく文字が殆ど認識できない一方、fx-9860G は格段に文字を認識できます。

LCDGRAY
  4階調表示をしてみるテストプログラム。128 fps固定です。


YouTubeには 30fps でアップしているので、この画像では動きが殆ど見えません。実際は fx-9860G では動きが見えることから、一番古いモデル fx-9860G の応答性が最も高く、見やすいことが分かります。fx-9750GIII は残像が激しく、実際はちらつくだけに見えます。

撮影に用いたカメラが 30fps までなので、うまく動画をアップできませんでした。これらの古いモデルをお持ちの場合は、是非実際に試して頂きたいと思います。

fx-9750GIIIfx-9860GIII の液晶画面は、過去のモノクロモデルに比べて応答性が悪く、視野角を変えた時のコントラストの変化が大きく少し見づらいのにも関わらず、バックライトが無いという残念な仕様になっています。

<目次に戻る>
関数電卓としての機能

fx-9750GIII のハードウェアは fx-9860GIII とほぼ同じで、関数電卓としての機能も同じです。
fx-9860GIII の関数電卓としての機能 参照

[2020/05/31 追記]
fx-9750GIII には、これまでのグラフ関数電卓にない新しい機能が追加されています。
乗算記号を省略したときの優先度の扱いは、日本とアメリカや他の国では異なって教えられているようです。日本では省略した場合の優先度が高いのですが、アメリカでは省略しても × と同等の優先度だと教えていたようです。例えば、

6÷2(1+2)

は、日本では 6÷(2×(1+2)) = 1、アメリカでは 6÷2×(1+2) = 9 が正しいとされます。

これについては、面白い記事を紹介します ⇒ 関数電卓マニア - 関数電卓コラム 6÷2(1+2)?
この記事によれば、この優先度については、すでに決着がついているとのことです。しかし慣れ親しんだ優先順位は簡単に変えづらいのでしょう。アメリカ仕様の電卓を使うと、期待した計算結果にならないわけです。ならば切り替えられると良いわけです。

これまでの電卓では、乗算機能省略時の優先度はどちらかで決まっており、選択できませんでした。fx-9750GIII で初めてこの仕様を切り替えられるようになりました。

[SHIFT]-[MENU] (SETUP) で現れる設定画面の一番下の項目で、乗算記号省略時に優先度を上げる(On) か上げない(Off) かを設定できます。
Menu_Imp_Multi 

工場出荷時は、乗算省略時の優先度を高くする設定(On) になっています。
この設定の時、RUN・MAT モード(関数電卓の計算モード) で、6÷(1+2)を入力して [EXE] を押すと、括弧 ( ) が自動的に追加されて、計算結果が 1 となります。
equation Result_1 

Imp Multi を off にし、同じ計算をすると、括弧の自動追加は行われずに、結果が 9 になります。
Menu_Imp_Multi_off Result9 

この設定は、Casio Basic プログラムにも反映されます。この新機能に対応して、省略された乗算記号に優先度を On / Off する新たなコマンドも追加されています。
ImpMultiOn
ImpMultiOff 
但し、現在の設定値を返すコマンドは無いので、例えば以下のようなコードで On か Off かを判定する方法が考えられます。

4÷2(2)-4⇒"ImpMulti On":"ImpMulti Off"

If 4÷2(2)-4
Then "On"
Else "Off"
IfEnd

 
ちなみに、ヨーロッパ専用の fx-9860GIII は、6÷2(1+2) = 1 となります。他の fx-9860Gシリーズ、fx-CGシリーズ、fx-5800P も計算結果は 1 になります。

どちらにも解釈できる式を使わず、括弧 ( ) を使った表記にすれば問題はありません。
<目次に戻る>
Casio Basic の互換性

fx-9750GIII に搭載されている Casio Basic は、2006年に海外で発売された fx-9860G とそれ以降に発売されたグラフ関数電卓、そして fx-5800P に搭載さているものと同じカテゴリに属します。これらの Casio Basic は、構造化風コーディングができて意外に高機能です。当ブログでは、このカテゴリを新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2005年発売 fx-9860G (生産中止)
 - 2006年発売 fx-5800P
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20と同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50
 - 2020年発売 fx-9860GIII
 - 2020年発売 fx-9750GIII

新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

fx-9750GIII 搭載の Casio Basic は、fx-9860GIII と異なる点が見つからず、さらに fx-9860GII 搭載の Casio Basic とも完全互換と言って良いと思います。

 ⇒ fx-9860GII への移植 - 厄介な旧来の命令
 ⇒ Casio Basic 機種間の互換性

当ブログで公開している Casio Basic入門逆引きCasio BasicCasio Basicコマンドリファレンスプログラムライブラリ は、fx-5800Pfx-9860GII の違いを理解しておけば、そのまま fx-9750GIII に適用できます。
 
 
<目次に戻る>
カタログ機能

[SHIFT] [4] (GATALOG) を押すと、カタログ画面が現れます。

fx-9750GIII OS3.21fx-9860GIII OS3.21 では違いが認められません。
fx-9860GIII のカタログ機能 参照


プログラムリスト

ProgMenu 

fx-9750GIII のプログラムリストは、fx-9860GIII と変わっていません。fx-CGシリーズのように、アルファベットキーを押した時にそのアルファベットで始まるプログラム名にジャンプする機能は無く、fx-9860GII から進化していません。


<目次に戻る>
Casio Basic の処理速度

fx-9860G シリーズ用に作成したプログラムが そのまま fx-9750GIII で動作します。そこで、いくつかのプログラムの処理速度を fx-5800P、fx-9860GII、fx-CG50 と比較してみます。fx-9750GIII は g1m ファイルが動作します。

fx-9750GIII のCasio Basic 処理速度は fx-9860GIII とよりも速いという意外な結果が得られました。


 計算主体のプログラム

PRIME - 素因数分解

ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GIII / fx-9860GII 用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動すると...

Prime_1  
数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。
このプログラムの実行中は、ビジーマーカー以外に表示の更新が無いので、計算速度の比較に向いています。今回は、以下の10桁の数の素因数分解の計算時間を比較します。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG50 の画面は以下のようになります。

   Prime_2 Prime_3 

機種別処理時間の比較
fx-CG50fx-9750GIIIfx-9860GIIIfx-9860GIIfx-5800P
118 MHz59 MHz59 MHz29 MHz---
46秒61秒69秒89秒444秒
11.351.501.939.65
0.7411.111.447.16
0.670.9011.297.05
0.520.700.7818.73

fx-9950GIII の計算処理は、fx-9860GIII より 10% 程度速くなっています。
fx-9750GIII と fx-9860GIII で使っていた乾電池を交換しても、fx-9750GIII が速く、同じ結果になったので、速度の違いは電源電圧の盛況ではないことは確認しています。また、メインメモリの空き領域は双方とも 20,000バイト程度なので、メモリの影響も考得られません。上記の積分計算速度は差が無かったので、関数の処理速度に大きな差はありません。

OSバージョンは双方とも 3.21 と同じなので、fx-97500GIII が速い理由がよく分からないのが正直なところです。

  
<目次に戻る>
動きのあるテキスト出力プログラム

PYTHA - ピタゴラス数探索

ダウンロード

- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - ピタゴラス数 を参照。

このプログラムを起動すると1つめのピタゴラス数を表示して一旦停止します 。
 [EXE] キーを長押しすると、連続的に次々とピタゴラス数が表示し続けます。
そして、500個のピタゴラス数を探索して表示するまでの時間を計って比較します。
    Pytha_1

このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。
500個のピタゴラス数が見つかるまでの時間を、機種別に比較してみました。

機種別処理時間の比較
fx-CG50
fx-9750GIII
fx-9860GIII
fx-9860GII
fx-5800P
87秒
56.0秒57.2秒93秒
441秒
10.640.661.075.07
1.5511.021.667.88
1.520.9811.637.71
0.940.600.6214.74

fx-9750GIII は、fx-9860GIII より2%ほど速いことが分かりました。両方のモデルを並べて同時にプログラムを実行させると、何度やっても fx-9750GIII が速い結果になりますので、僅かではありますが処理速度の差はあります。
fx-9750GIII が速い原因がよく分かりません。
 
<目次に戻る>
動きのあるグラフィック出力プログラム

MONTECAR - モンテカルロ法による円周率計算

ダウンロード
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

 GIII_Monteca_1 GIII_Monteca_2

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、グラフィックスの Textコマンドと Plotコマンドによる表示更新を頻繁に行うものです。そこで、Text と Plot を500回繰り返す時間を、機種別に調べて比較してみました。
機種別処理時間の比較 
fx-CG50
fx-9750GIII
fx-9860GIII
fx-9860GII
174秒87.3秒
87.5秒
135秒
10.500.500.78
1.9911.001.55
2.001.0011.54
1.20.650.651

fx-9750GIII は、fx-9860GIII より若干速いですが、ほぼ同じ結果になりました。双方を並べて同時にプログラムを実行すると、何度やっても fx-9750GIII が必ず速いことが分かりました。
fx-9750GIII が僅かでも速い理由がよく分かっていません。

 
<目次に戻る>
さらなる高速化

fx-9750GIII は、Casio Basicによる内部演算速度が速く、テキストならびにグラフィックス出力処理速度も少し速いことが分かりました。

プログラムをより高速化するには、現在のところ2つの方法があります。1つはチューンアップ (オーバークロック)ツール による高速化、もう一つはアドイン版 Casio Basic - C.Basic の利用です。

チューンアップ
これまで、fx-9860Gfx-9860GIIfx-9860GIII そして fx-CG10 PRIZM / fx-CG20 そして fx-CG50 に対応したオーバークロックツールが、sentaro様により提供されています。いずれも比較的安全性が確保されており、私も愛用しています。但しオーバークロックは、最悪ROM に記録されている内容が損傷をうけて電卓が起動できなくなってもメーカー保証を受けられないので、自己責任で利用しましょう。

fx-9750GIIIfx-9860GIII には、Ftune3 が提供されています。
 Casio グラフ関数電卓を限界までチューンアップ

当ブログでは、作者の sentaro様から直接サポートを受けられるように、以下の以下のエントリーを用意していて、そこでは Ftune3 のダウンロードと質問ができます。
グラフ関数電卓のオーバークロック - Ftune / Ptune -

安全に使う第一歩は、デフォルトの[F5]での設定を使うことです。

なお、チューンアップは、CPUコアクロックだけでなく、メモリバスクロック、I/Oバスクロック、ウェイトなどを機種に応じて調整します。
 
アドイン版 Casio Basic (C.Basic)
C.Basic は、fx-9750GIII や fx-9860GIII に加えて fx-9860Gシリーズ、そして fx-CGシリーズに対応しています。開発者はチューンアップツールと同じ sentaro様です。

C.Basic は、純正Casio Basic のソースをほぼそのまま実行可能で、特にグラフィック描画の高速化は目を見張るものがあります。
どのくらい速いかは、ここ にある動画を見れば一目瞭然です。開発開始以来、現在でも国内外のユーザーの要望に応えつつ、デバッグや機能追加によるバージョンアップが継続しています。

fx-9860G シリーズ用の C.Basic for FXfx-CGシリーズ用の C.Basic for CG が公開されており、fx-9750GIII には C.Basic for FX が対応しています。

C.Basic のトップページ

 




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: CasioBasicプログラム電卓、fx-CG50

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-5800P【ゲーム】:もぐら叩き~まとめ~

fx-5800Pでもぐら叩き
e-Gadget


fx-5800P で作る「もぐら叩き」ゲームのまとめ
コード修正 2014/03/20
fx-FD10 proに関する記述追加 2014/09/28
コード誤記修正 2016/05/12
  fx-CG20 に関する記述修正 2017/01/04
fx-CG50 に関する記述追加 2017/07/24
追記 2017/08/06
追記 2020/05/30



普通のプログラム作成の記事と異なり、多少冗長な内容になっており、(1)~(8)で、徐々にプログラムを作ってゆく様子を複数の記事で紹介した。


最終的なプログラムは、本ページの一番下に掲載した。またこれを一部改善したもの、および各機種へ移植したものを プログラムライブラリに収録している。[2017/08/06 追記]

プログラムライブラリ - もぐら叩き (fx-5800P)
プログラムライブラリ - もぐら叩き (fx-9860GII)
プログラムライブラリ - もぐら叩き (fx-CG20 / fx-CG50)


以下の記事は作りながら書いているので、プログラミング本のように最終形を想定した進め方になっていない。途中でロジックの変更や、バグ対策や、変数の変更など、実際にどうやって完成させたかをそのまま書いている (fx-5800P版)。

fx-5800P【ゲーム】:もぐら叩き(1)

fx-5800P【ゲーム】:もぐら叩き(2)

fx-5800P【ゲーム】:もぐら叩き(3)

fx-5800P【ゲーム】:もぐら叩き(4)

fx-5800P【ゲーム】:もぐら叩き(5)

fx-5800P【ゲーム】:もぐら叩き(6)

fx-5800P【ゲーム】:もぐら叩き(7)

fx-5800P【ゲーム】:もぐら叩き(8)


fx-5800P に搭載されているプログラミング言語は、Casio Basic というカシオの味付けをした BASIC言語 だ。

特に、もぐら叩きのようなゲームを作る際に特に重要かつ必要なものは、以下の機能だろう。
1) 広い表示画面
2) Getkeyコマンドによる、リアルタイムキー入力監視機能
3) Locateコマンドによる、柔軟な表示機能
4) 真 (0以外) と 偽 (0) による条件判定


さらに、昔のプログラム電卓に搭載されていた BASIC と異なり、構造化プログラミングの考えでコーディング可能な点も特筆できる。昔のプログラム電卓やポケコンに搭載されていた BASIC は行番号と GOTO コマンドでプログラムの流れを作っていたが、現在の Casio Basic は Goto コマンドを使わずに制御構造を作れるので、上から下へのシンプルな直線構造のコードの中に、1まとまりの処理ブロック1本に繋げる、いわゆるブロック構造にできるので、分かりやすくバグの入りにくいコードが書けるようになっている。

これらの機能が、fx-5800P を魅力的にしている。


CASIOの電卓の中で、上記を満たすプログラミング言語を搭載されているのは、下記のモデルだ。

・fx-9860Gシリーズ: グラフ関数電卓(生産終了)
 取扱説明書

・fx-9860G IIシリーズ: グラフ関数電卓(生産終了)
 メーカーサイト / 取扱説明書

・fx-9860GIII: グラフ関数電卓 (現行品、ヨーロッパ専用モデル)
 メーカーサイト / 取扱説明書

・fx-9750GIII: グラフ関数電卓 (現行品、北米専用モデル)
 メーカーサイト / 取扱説明書

・fx-CG20 / fx-CG10: カラーグラフ関数電卓(生産終了)
 メーカーサイト / 取扱説明書

・fx-FD10 pro:土木測量向けプログラム関数電卓 (現行品)
 メーカーサイト / 取扱説明書

・fx-CG50:カラーグラフ関数電卓 (現行品 - 2017/10/20 国内発売)
 メーカーサイト / 取扱説明書

・fx-5800P: プログラム関数電卓(現行品)
 メーカーサイト / 取扱説明書


fx-FD10 pro fx-FD10 pro < fx-9860GII版もぐら叩き >


fx-CG50 noce photo fx-CG50 < fx-CG50版もぐら叩きのダウンロード


fx-9860GII  fx-9860G II  fx-9860GII版もぐら叩きのダウンロード >


               fx9860GIII             fx-9860GIII  < fx-9860GIII版もぐら叩きのダウンロード


               fx-9750GIII_large             fx-9750GIII   < fx-9750GIII版もぐら叩きのダウンロード


fx-CG20  fx-CG20 fx-CG20版もぐら叩きのダウンロード >


    fx5800P_calc         fx-5800P <fx-5800P版モグラ叩き - ダウンロードも可 > 


各機種の画像の右に、対応する「もぐら叩き」プログラムのダウンロードリンクを示している。ダウンロードして転送するだけで楽しめる (fx-5800P は CcLinker を使ってダウンロードしたプログラムファイルを転送できる) ので、先ずは遊んでみてください。

完全互換でないのには理由がある。電卓の機種が異なると、ハードウェアの違いからキー配置が異なる。従って、Getkeyで得られるキーコードが異なるため、ソースレベルでの互換性は無い。これを除けば fx-5800Pのプログラムからの移植性は比較的高いと(旧来の命令の互換性については、少し注意が必要だ⇒こちらを参照)。

fx-5800P、fx-9860Gシリーズ (さらにOS載せ替えしたfx-9750Gシリーズ)、fx-CGシリーズ以外ではこのゲームは走らない。例えば、fx-72F、fx-71F 、fx-3600P、fx-3950Pなどはプログラム機能が十分でないので適用外だ。

ところで、fx-9860GII、fx-CG20、fx-CG50、fx-FD10 Pro は、1万円以上の価格だ。一方で、fx-5800P は 6千円台前半 (2017/01/01時点の Amazon価格) と格段に手軽な価格だ。この価格で、上記4つの条件を満たす言語を搭載しているのだから、改めて魅力的なマシンと言える。

※ 興味があれば、最近のCasio プログラム電卓の価格動向 をご参照。


当初は、fx-5800P のような電卓で、遊べるアクションゲームを作れるとは思っていなかった。たまたま、Goto~Lbl コマンドで、カウントタイマーを作ってみると、意外に速いことから、実際に遊べるレベルのアクションゲームを作れるかどうかを試したくなったのが、もぐら叩きを作り始めた動機だった。

パソコンで作るゲームと異なり、最初にゲーム仕様を作るのではなく、機能を追加した時にゲームとしてのスピード感を損なわないように探りつつ、様子を見ながら後付けでゲーム仕様を考えた。実際に私自身が考えたり試したりした事柄を、時系列で実況中継風に書いた結果、冗長な記事となってしまった。

できあがったゲームは、バリバリのゲーマーには物足りないのだが、普段からあまりゲームで遊ばない人間(=私)には、少しすつスキルアップして、得点が増えてゆくのが愉しい。


ご興味の有る方は、是非一度プログラムを入力して、遊んでみて欲しい。


もぐら叩きが意外にうまくいったので、最近はシューティングゲームができないものか?と、色々と動きのあるルーチンを作って遊んでみている。ひょっとしたら、何かシューティングゲームができるのかも知れない。

電卓の遅い処理速度、完全シングルタスク、広いといっても16×4 しかない画面で、動きやロジックを試しながら、遊べそうなゲームを模索してみようと思っている。


おしまい( ^o^)ノ



以下は、プログラムコード: [2016/05/15 誤記修正]

[2017/08/06 追記]
メインルーチンの3行目 Lbl 0 の下に、2行追加したものをプログラムライブラリに収録している。
追加した2行は、
While Getkey
WhileEnd


もぐら叩き: Wack -a-Mole by やす(Krtyski)

Wack-a-Mole_src 



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: fx-5800Pfx-CG20fx-9860G IIゲーム、プログラミングもぐら叩きプログラム関数電卓

リンク集 | ブログ内マップ

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-5800P 素因数分解 - 高速化

追記修正 2020/05/25

[2020/01/24]
ソースコード表示を追加し、C.Basicでの実行例の説明を追加しました。
[2020/05/25] 動作可能モデルの記述を更新しました。


今回は、fx-5800P の素因数分解プログラムの高速化の話題です。

素因数分解の一般的な方法は、"エラストテレスのふるい" と言われるものです。最初に入力した数 N を小さい順に素数で割り算を繰り返す方法です。最大の素因数は N の平方根以下の整数なので、平方根以下の整数を対象に2と3以上の奇数で割り算を行う方法で fx-5800P での素因数分解プログラムを作っています。
⇒ fx-5800P 素因数分解 - バグ修正と表示変更

さらに高速化する方法は無いものかと、色々と考えたり、試したりしていました。
例えば Casio 関数電卓の素因数分解 など。



最速の素因数分解プログラム

最近、目からうろこの高速化を達成した記事を見つけました。
A fast prime factorizing program for Casio fx-5800P 
このトピックで、作者の slugrustle 様 は、2つのプログラムを公開されています。いずれもプログラム名は FACTOR です。
オリジナルは、上のサイトをご覧ください。

これらには、面白い工夫がなされています。その部分には手を付けず、表示やユーザーインターフェースの不具合(と私が思うだけですが...)を解消するために、チョット変更しました。


1本目のプログラムの変更版:
結果の表示を 3^2 と乗数を表示し、List にも乗数の結果が FREQ に反映するように変更しました。
FACTOR-M1 のダウンロード

FACTOR-M1_1 FACTOR-M1_2 
FACTOR-M1 の結果出力 - 左: 乗数表示、- 右: [MODE] [3] で現れる List表示


2本目のプログラムの変更版:
オリジナルプログラムでは、結果表示画面を、複数ページで切り替えて自由に見られるようになっています。[EXE] [▲] [▶] [+] で次のページを表示、[(ー)] [▼] [◀] で前のページを表示、[EXIT] [DEL] でプログラムを終了するようになっています。計算が高速化しているだけでなく、結果表示も良くなっています。

このキーの使い方がチョット馴染まないので、[▼] で次のページ、[▲] で前のページ、[+] は使えないようにし、指定以外のキーを押した時の誤動作を抑制するように修正しました。時間をかけて計算できた結果が、誤動作で見えなくなるのは嫌ですから...
さらに、オリジナルはキーを軽く押しても応答せず長押しが必要、つまり応答がとても悪いので、キー入力待ちを最小のループにして応答を十分高速にしました。軽くキーを1回押すだけで、チョット待ちますが必ず画面が変わります。
またオリジナルでは結果表示一覧で素因数として 1 が表示されますが、1 は素数ではないので、素因数として 1 が表示されないように修正しました。
FACTOR-F1 のダウンロード
ソースコードはこのページの一番下に掲載

FACTOR-F1_1  FACTOR-F1_2 
FACTOR-F1 の結果表示 - 全結果を画面切り替えで確認、左: 2/1ページ、右: 2/2ページ


比較のための以前作った PRIME DECOMP:
PRIME DECOMP のダウンロード

Prime_Decomp_2 Prime_Decomp_3 


上記でダウンロードしたZIPファイルには、それぞれ CCL ファイルと TEXT ファイルが含まれています。CCL ファイルは CcLinker を使って fx-5800P に転送できます。或いは、下のリンクからテキストファイルを参考にしてください。



計算時間の比較

先ずは、fx-5800P でどのくらい高速化されたかの結果を示します。

PRIME DECOMP
ソースコード
FACTOR-M1
ソースコード
FACTOR-F1
ソース (メインルーチン)
ソース (サブルーチン)
123,456,789
= 32 x 3607 x 3803
170 秒60 秒
3 倍高速化
42 秒
4 倍高速化
6,666,666,667
= 19 x 1627 x 215659
77 秒27 秒
3 倍高速化
20 秒
4 倍高速化
7,849,516,203
= 32 x 9811 x 88897
458 秒165 秒
3 倍高速化
111 秒
4 倍高速化

1本目の FACTOR-M1 で3倍高速化、さらに2本目の FACTOR-F1 は4倍高速化されていることが分かります。

素因数分解は、与えられた数を小さい数から順に割ってゆく時、その操作の回数を減らせば、高速化に繋がります。
PRIME DECOMP では入力した数に、先ず平方根をとって一気に探査範囲を狭め、2と3以上の奇数で小さい方から順に割り算してゆく作戦です。

一方で、理想的なのは、小さい素数から素数だけで順に割り算してゆくことです。それには素数リストが必要ですが、それがあれば苦労しません。素数を算出する計算式などありません。

さて、slugursite様の工夫は、高い確率で素数を見つけるだけでなく、割り算する候補 (例えば、2 や 3 だけでなく、一旦割り算で使った素数の倍数) を効果的にふるい分ける手法にあります。そして、最初の FACTOR-M1 よりも 次の FACTOR-F1 の方が、素数を見つける確率が高くなっているので、さらに高速化されています。



最速プログラムでの工夫 [2019/07/31]

読者のまつ様から、高速プログラムの考え方をご説明頂きました。私はこれに大変納得しましたので、それを掲載致します。以前の記述は撤回させて頂きます。

素因数分解プログラムで通常行われている割り算では,「2,および,3以上の奇数」を割る数としています。
これですと,ご存知のように,例えば3で割り切った後に9でも割るという無駄が出てしまいます。
FACTOR-M1は,「2, 3, 3より大きい3の倍数を除く奇数」を割る数としており,3で割ったあと9や15で割ることはないようにしています。

3より大きい3の倍数を除く奇数について考えてみます。

まず,3より大きい3の倍数でない整数は次の(1),(2)のどちらかです。
 3m+1 (1)
 3m+2 (2)
 (m>=1)

次に(1),(2)が奇数となる式をそれぞれ求めます。

(1)は (2m+1)+m と変形できます。2m+1 は奇数ですから,(1)が奇数であるためには m が偶数である必要があります。そこで m=2n (n>=1) とおけば,(1)は 6n+1 となります。

(2)は 2(m+1)+m と変形できます。2(m+1) は偶数ですから,(2)が奇数であるためには m が奇数である必要があります。そこで m=2n+1 (n>=1) とおけば,(2)は 6n+5 となります。

5とこれらの式を並べ,さらに,隣り合う式の差も書き加えると次のようになります。(n=1とします)
式の並び隣り合う式の差
52
6n + 14
6n + 52
6(n+1) + 14
6(n+1) + 52
6(n+2) + 14
6(n+2) + 52
:
:
:
:
このような訳で,2, 4, 2, 4, ... と加算していると思われます。
この繰り返しは,6n+1 および 6n+5 の式からも分かるように,2と3の最小公倍数6を周期としています。

FACTOR-F1は,これを拡張して,割る数として
 奇数,かつ,3の倍数でない,かつ,5の倍数でない,かつ,7の倍数でない整数
を順番に求めていく方法をとっていると思われます。
2,3,5,7の最小公倍数は210ですから,隣り合う割る数の差(2,4,6,8など)の並びは210が1周期です。
FACTOR-F1の場合は,13+210n〜13+210(n+1)-1 [n>=0]の範囲で,2,3,5,7のいずれの倍数でもない整数を並べて,隣り合う整数の差をリストにしていると思われます。

ちなみに,13〜222の210個の整数のうち,
 奇数,かつ,3の倍数でない,かつ,5の倍数でない,かつ,7の倍数でない整数
の個数は,FACTOR-F1の「While 1」の下にある
 B+2→B:A÷B→D:Frac(D)=0⇒Prog "WFSUB":B>C⇒Goto 1
のパターンの行数と同じ48個です。

48個となる理由は次の通りです。

まず,2,3,5,7の倍数に関わるそれぞれの個数を求めます。

2の倍数の個数=210/2=105
3の倍数の個数=210/3= 70
5の倍数の個数=210/5= 42
7の倍数の個数=210/7= 30
 
2と3の公倍数の個数= 6の倍数の個数=210/ 6=35
2と5の公倍数の個数=10の倍数の個数=210/10=21
2と7の公倍数の個数=14の倍数の個数=210/14=15
3と5の公倍数の個数=15の倍数の個数=210/15=14
3と7の公倍数の個数=21の倍数の個数=210/21=10
5と7の公倍数の個数=35の倍数の個数=210/35= 6
 
2,3,5の公倍数の個数= 30の倍数の個数=210/ 30=7
2,3,7の公倍数の個数= 42の倍数の個数=210/ 42=5
2,5,7の公倍数の個数= 70の倍数の個数=210/ 70=3
3,5,7の公倍数の個数=105の倍数の個数=210/105=2
 
2,3,5,7の公倍数210の個数=210/210=1

重複を考慮すると,
2,3,5,7のいずれかの倍数の個数
=(105+70+42+30)-(35+21+15+14+10+6)+(7+5+3+2)-1
=162

従って,2,3,5,7のうちどの倍数でもない整数の個数は,
 210-162=48
で 48個となります。


素因数分解の正しい動作を検証

この作者は自分のプログラムを検証するテストプログラムまで作って、ソースコード (C++) を公開しています。fx-5800P 用なので、素因数分解する数は最大10桁と決まっています。この条件下でアルゴリズムの正しさを検証しています。

検証プログラムのソースコードが公開されています。そこで Visual Studio 2019 Community でビルドしました。


 FACTOR-F1 のテストプログラム Factor.exe のダウンロード [2019/08/28 リンクを修正]

コマンドプロンプトで、Factor.exe のあるデイレクトリに移動し、そこで

 Factor 1000 50000 4

と入力してエンターキーで実行すると、1000 から 50000まで 4 刻みで入力を変化させて FACTOR-F1 を実行した結果を一気に連続して自動実行してくれます。そして、結果が素数がどうか判定し、素数でないものが出てくるとエラーを出し、素数であれば実行を継続します。正常終了すれば、正しく素因数分解が実行されたことになります。

factor_1
正常終了しているので、1000 から 50000 までの素因数分解は問題ないことが検証されました。


fx-5800P 用のプログラムなので、入力値は 1 ~ 9,999,999,999 (10桁) の範囲なので、完璧にテストするには、

 Factor 1 9999999999 1

とすれば良いのですが、試しに私のPCだと、1晩で150億回分の検査が済みました。 10桁に相当する (1000億 - 1) 個全部のテストは、夜のみ終夜運転で計算させるとして1週間程度必要になりそうです。

factor_2
1 ~ 9,999,999,999 までのテスト中

テストが正常終了すれば、このアルゴリズムが正しいことが検証されます。但し、他のパラメータ設定でも正しい組み合わせは有りそうです。



グラフ関数電卓用に移植 [2020/05/25 更新]

FACTOR-F1 をグラフ関数電卓用に移植しました。素因数分解の計算部分は変更の余地がありませんが、結果表示は7行全部を使うように変更しました。

グラフ関数電卓用 FactorG のダウンロード

FactorG 
FactorG の結果表示

ここで作成したプログラムは、Casio Basic が搭載されたグラフ関数電卓で動作すると思われます。
カシオが過去に発売したグラフ関数電卓全てを調べていませんが、おそらく 1995年発売のフランス専用モデル GRAPH20、そして1996年発売の世界モデル fx-7400G 以降のモデルでは、このプログラムが動作すると思われます。 

実際に動作確認したモデル (若干の手直し移植を含む)
 ・CFX-9850G (若干の手直し、プログラムダウンロード)
 ・CFX-9850GC PLUS (若干の手直し、プログラムダウンロード)
 ・fx-9860G / fx-9860G Slim (そのまま動作)
 ・fx-9860GIIシリーズ - SH3/SH4A、SDモデル (そのまま動作)
 ・fx-CGシリーズ - CG10/CG20/CG50 (そのまま動作)
 ・fx-9750GIII / fx-9860GIII (そのまま動作)
※ これらは純正Casio Basic での動作

なお、上の画面は、fx-CG50 にインストールした アドインCasio Basic  - C.Basic for CG で実行した画面です。C.Basic は純正Casio Basic のほぼ上位互換なので、グラフ関数電卓用 FactorG.g3m がそのまま実行できます。C.Basic は純正Casio Basic よりもかなり高速に動作するので、上記の例だと一瞬で結果が表示されます。
アドインCasio Basic - トップページ



Factor-F1 (fx-5800P用) のソースコード

FACTOR-F1_src



今回は、slugrustle 様の Universal Casio Forum への投稿プログラムの解説記事になってしまいましたが、私としては十分楽しませてもらったので、記事にして残そうと思いました。



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、fx-5800P、素因数分解、プログラミング、Casio Basic

リンク集 | ブログ内マップ


テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-9860GIII の概要

 
初版: 2020/04/05
周期関数の積分について訂正 2020/05/23


Casio fx-9869GIII POWER GRAPHIC 3

fx-9860GIII USB POWER GRAPHIC 32020年3月上旬、ヨーロッパ限定で fx-9860GIII が発売されました。明らかに fx-9860GII の後継機種で、既にフランス限定版として販売されている GRAPH 35+EII のインターナショナル版の位置づけです。この記事を書いている時点では、アメリカや日本では未発売です。

このデザインは GRAPH 35+EII とほぼ同じで、さらに最近の関数電卓の模倣品対策用の新デザインと極めて類似しています。

管理人は、Amazon France で購入しましたが、現在は日本への出荷を行わないと表記されています。eBayセカイモンで入手可能です。




fx-9860GIII の製品紹介は、CASIO INTERNATIONAL のページ や CASIO WORLDWIDE EDUCATION WEBSTITE のページで確認できます。

日本国内では、モノクロ液晶のグラフ関数電卓 fx-9860GII は既に販売していません。fx-9860GIII のヨーロッパ限定で発売後、北米限定で ほぼ同一機能の fx-9750GIII が発売されたので、これらのどちらかの国内発売が期待されます。


はじめに

Casio Basic の機能に着目すると、以下に列挙した機種が同じカテゴリに含まれるプログラム電卓です。

 - 2006年発売 fx-5800P 
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII (国内販売中止)
 - 2011年発売 fx-CG10 PRIZM (北米のみ)
 - 2012年発売 fx-CG20 (fx-CG10 PRIZM の約1年後)
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50 (欧米先行、2017/10/20国内発売)
 - 2020年発売 fx-9860GIII (ヨーロッパ限定発売)
 - 2020年発売 fx-9750GIII (北米限定発売)

fx-9860GIIIと fx-9860GII / fx-CG50 との比較
 fx-9860GIIIfx-9860GIIfx-CG50
 電池 単四 x 4 単四 x 4 単四 x 4
 電池寿命 (メーカー測定基準) 230 時間 200 時間 170時間
 サイズ (mm) 18.7 x 83.5 x 175.5 21.2 x 91.5 x 184 18.6 x 89.0 x 188.5
 重さ (g) 190 225 230
 液晶ディスプレイ
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 ・バックライト
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
なし
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
・あり
 216 x 384 pixel
・187 x 379 dot
・7 x 21 文字
・あり
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁
 プログラムメモリ容量 最大 ~62 KB 最大 ~62 KB 最大 ~61 KB
 メインメモリ (利用可能) ~62 KB ROM ~64 KB ROM ~61 KB ROM
 ストレージメモリ  ~3 MB SDRAM ~1.5 MB SRAM ~1.6 KB SDRAM
 プログラムファイル名 最大8文字 最大8文字 最大8文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~59 MHz ~29 MHz ~118 MHz
 - FLL:  14.75 MHz x900 14.75 MHz x900 14.75 MHz x900
 - PLL:  FLLx16, 235.93 MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz
 - IFC: CPUコアクロック 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz 1/2 PLL, 117.96 MHz
 - SFC: SuperHywayバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz 1/4 PLL, 58.98 MHz
 - BFC: メモリバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/16, 14.74 MHz 1/16, 14.75 MHz 1/8, 29.49 MHz
 PCリンク Screen Receiver  FA-124 Screen Receiver
 OSバージョン 3.21  2.09 3.30
 Casio Basic あり あり あり
 Python あり なし あり

fx-9860GIII での fx-9860GII からの主な変化を列挙します;
CPUクロックが倍になった
PCリンクが fx-CGシリーズと同様に楽になった - 電卓をPCの外部ドライブとして認識
Pythonが追加された
サイズが小さくなった
  GIII_GII_CG50 
液晶のバックライトが無くなった (個人的には不便を感じる)
液晶サイズが小さくなった (個人的には不便を感じる)
 

 
目 次

1. 海外から直接購入


2. 到着したパッケージ

3. 外 観

4. ソフトウェアダウンロード
 4.1 OSアップデート
 4.2 取扱説明書
 4.3 アドインプログラム
 4.4 サポートソフトウェア

5. データ転送
 5.1 PCとのリンク
 5.2. 電卓同士のデータ転送

6. バックアップ

7. ハードウェア
 7.1 ゴム足が取れやすい

8. 関数電卓としての機能
 8.1 ユーザデータのバックアップ機能
 8.2 3桁区切り表示
 8.3 複素指数関数
 8.4 積分関数の処理速度
 8.5 周期関数の積分 [2020/05/23 修正]

9. Casio Basic の互換性

10. カタログ機能

11. プログラムリスト

12. Casio Bsic の処理速度
 12.1 計算主体のプログラム
 12.2 動きのあるテキスト出力プログラム
 12.3 動きのあるグラフィック出力プログラム

13. さらなる高速化
 13.1 オーバークロック
 13.2 アドイン版Casio Basic (C.Basic)
 

 
海外から直接購入

fx-9860GIII はヨーロッパ限定で発売されたので、現時点では日本や北米では販売されておらず、Amazon France、e-Bayで直接購入するか、e-Bayと提携しているセカイモンから購入できます。

そこで、管理人は送料を含めて最も安い価格が提示されていた Amazon France から購入した(詳しくはこちらを参照)。但し購入直後 "このセラーは日本へ出荷できません" と表示された。従って Amazon France で別のセラーが出品するか、Amazon USA や Amazon Japanでの並行輸入品で出品されるのを期待します。 

[2020/04/28 追記]
COVID-19パンデミックの影響で、海外のeBayやAmazon France から日本への発送を行うセラーが無い状況です。但し日本語で購入できるセカイモンなら入手可能。
セカイモンでのfx-9860GIII 
4/28時点で、¥16,493 で購入できます。
 
<目次に戻る>
到着したパッケージ

fx9860GIII_Package  fx9860GIII_Package_Backside 

ブリスタパッケージのような分厚いプラスチックがガッチリと融着されているものではなく、楽に開けらます。

GIII_Contents2 

fx-9860GIII 本体、Quick Start Guide、単四アルカリ電池4本 (試供品)、PCリンク用のUSBケーブル、電卓同士を接続する3Pinケーブル、廃棄処理の注意書き、保証書が入っています。CDは同梱されていません
 
 
<目次に戻る>
外 観

 9860GIII_991MS2ndEdition   Back_Desig 

(写真左) サイズと色合いは異なりますが、関数電卓 fx-991MS 2nd edition (右) とデザインが同じです。白い筐体への印字はとても見やすくなっています。

(写真右) 本体裏には、微妙な凹凸で形成された放射状の綺麗な模様があり、電池蓋を含めた広い領域に及んでいます。放射模様の中心にRESTARTボタンが配置されています。これは摸倣防止対策の1つなのかも知れません。
 
 
<目次に戻る>
ソフトウェア ダウンロード

 
OSアップデート 
fx-9860GIII 本体で、[MENU] - [System] - [F4] (Version) で確認すると、OSバージョンは 03.21.0200 となっていました。
今のところ、これが最新です。
 
 
<目次に戻る>
取扱説明書 
日本語取扱説明書はまだ公開されていません。

英語版は、Casio World Education Website の Download Resources のページからダウンロードできます。
 
 
<目次に戻る>
アドインプログラム
グラフ関数電卓のDownload Resourcesのページで、SOFTWARE LICENSE AGREEMENT に [Accept] クリックすると、OS、マニュアルと各種アドインプログラムをダウンロードできます。ここでダウンロードできるOSは、製品にインストールされている Ver 3.21 よりも古いものなので、ここからOSとマニュアルのダウンロードは意味がありません。アドインの中で、購入した fx-9860GIII にインストールされているのは、Geometry のみです。
 
 
<目次に戻る>
サポートソフトウェア
Screen Receiver - 電卓画面をPCで表示するソフト
Screen Receiver はPC画面に電卓の画面を表示するだけでなく、画面イメージを画像ファイルで保存できます。fx-9860GIII の Download Resources のページで、Support Software をクリックし、Screen Receiver がダウンロードできます。バージョンは 3.02 で、fx-CG20 /10 用と同じバージョンで、共通して使えます。
 
  
<目次に戻る>
データ転送
 
PCとのリンク


標準添付の USBケーブルを使います。
USBケーブルで fx-9860GIII と PC を繋ぐと、fx-9860GIII の液晶での表示が接続モード (Connection Mode) になります。
ここで、[F1] (USB Flash :[F1]) を押すと、ポップアップウィンドウで Preparing USB と表示され、少し待つと接続完了です。

後は、エクスプローラで fx-9860GIII がドライブとして表示されるので、PC上と同じ操作でファイルのやりとりができます。 

Calc_Drive 
fx-9860GIII 内のフォルダ / ファイル はこのように表示されます。

fx-9860GIII を接続した時のドライブには最初は名前が無いので、FX-9860GIII と名前を付けました。ドライブを右クリックしてプロパティを選び、そこで名前を入力できます。

Calc_Drive_Named 

アドインプログラムのインストールは、ドライブのルートにアドインファイルをコピーします。リンクを終了するには、Windows PCの通知領域 (タスクトレイ) で「ハードウェアを安全に取り外してメディアを取り出す」で [DEVICE の取り出し] をクリックします。外付け USBハードディスクや USBメモリの取り出しと同じ操作です。
 
 
<目次に戻る>
電卓同士のデータ転送

3Pinコネクタの接続ケーブル (SB-62) を使って2つの電卓を繋ぎ、接続する両方の電卓で CABLE (ケーブルの選定) で [F2] (F2:3Pin cable) を設定後、一方で TRANSMIT (送信)、他方で RECV (受信) に設定すれば、データのやりとりができます。このケーブルは、海外で購入

プログラムを含むデータのやりとりができるのは、fx-9850Gシリーズ、fx-9860Gシリーズ、fx-9860GIIシリーズ、fx-CGシリーズ、そして fx-9860GIII で、Menu に Link 項目があって、3Pin コネクタが付いている機種です。なお、fx-5800P と グラフ関数電卓とのデータ転送はできません。

詳しくは、Sofware Manual に書かれているので確認できますが、使ってみれば分かると思います。

fx-CGシリーズ から fx-9860GIII へ転送すると、ファイル形式は g3m から g1m へ自動変換され、カラーや細線設定など、fx-9860GII で未対応のコマンドは @ に自動的に置き換えられます。
 
 
<目次に戻る>
バックアップ

万一に備えて、電卓内部のデータをバックアップしておくことを勧めます。PCに保存フォルダを作り、PCとのリンク機能を使って電卓内のデータをPCの保存フォルダに丸ごとコピーしておきます。
Backup_Factory_State 
上は、購入時のバックアップです。そして適宜バックアップをすると良いと思います。特にチューンアップツールでオーバークロックを行う場合は、エラー発生時に電卓のリセットが必要になりプログラム、データやプログラムが失われることもあるので、バックアップしてあればこれらを簡単に戻せます。
 
 
<目次に戻る>
ハードウェア
 
 
ゴム足が取れやすい
管理人が購入したものは、ハードカバーのゴム足が最初から1つ欠損していました。工程で取れたままを見逃し、パッケージに入れられたようです。本プログの読者の sentaro様が保有している GRAPH35+EII のゴム足も取れやすいとのこと。つまり GRAPH35+EIIfx-9860GIII は本質的にゴム足の接着工程に問題がありそうです。
  
 
<目次に戻る>
関数電卓としての機能

fx-9860GIII のキーの種類と数、および配置は、[SHIFT] - [OPTN] のバックライト 機能以外は、fx-9860GII と同じです。関数機能も同じです。計算の内部桁が15桁と同じで、各関数の精度範囲も同じなので、fx-9860GIII の関数電卓としての使い勝手は fx-9860GII と同じです。
 
 
<目次に戻る>
ユーザーデータのバックアップ機能
カシオのスタンダード関数電卓は電源をオフにすると、作業内容やユーザーデータが消えますが、fx-9860GIII は各モードでのユーザーデータは一旦電源を切ってもバックアップされます。このバックアップ機能は、他のプログラム電卓 fx-5800P、fx-9860GII、fx-CG20/50 とも同じです。
 
 
<目次に戻る>
3桁区切り表示
カシオの最新のスタンダード関数電卓 fx-JP900 / 700 / 500 では、関数電卓として3桁区切りが登場しました。一般電卓には3桁区切りは普通に搭載されている使い勝手の良い機能なので、登場が遅すぎるようにも思います。

これまでのプログラム電卓には3桁区切り機能は有りません。fx-9860GIII も残念ながら3桁区切り機能には対応していません。

Casio Basic での出力コマンドにも3桁区切り機能がありません。しかし、作ったプログラムに3桁区切り出力機能を付加することは出来ます。
Casio Basic入門59, Chapter 10-5:3桁区切りサブルーチン グラフ関数電卓版
 
 
<目次に戻る>
複素指数関数
複素数を表示するように設定して、計算させてみると、fx-5800P はエラー、fx-9860GII と fx-CG20 は正しく計算結果を表示します。fx-CG50 でも同様に複素指数関数を正しく計算します。

Complex_1  Complex_2 
※ Screen Receiver で取得した画面イメージ 
 
<目次に戻る>
積分関数の処理速度
 
積分計算速度の比較をしてみます (Rad モード)。
機種積分1積分2
fx-JP9005.5秒48.7秒
fx-5800P10.1秒56.7秒
fx-9860GII (SH4A)1.5秒8.4秒
fx-CG201.0秒5.8秒
fx-CG500.7秒3.2秒
fx-9860GIII1.1秒5.8秒

積分計算は fx-9860GIII よりは高速化していますが、fx-CG20 とほぼ同じ、fx-CG50 よりは遅くなります。
 
 
<目次に戻る>
周期関数の積分 [2020/05/23 修正]
積分計算にガウス・クロンロッド法が使われていることから、このアルゴリズムが苦手な多項式で表せない関数の代表選手として周期関数の積分を行って、タイムアウトする限界を比較してみます (Rad モード)。

積分3
機種計算できる nタイムアウトする n
fx-JP900
fx-5800P
fx-9860GIIn ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-CG20n ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-CG50n ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-9860GIIIn ≦ 60 Or (n = 64,128, 256, 512)n ≧ 61 Or n = 2m (m≧10)

fx-9860GIII での結果は、fx-CGシリーズや fx-9860GII と同じで、積分計算の内部ロジックは変更が無いと思われます。
 
 
<目次に戻る>
Casio Basic の互換性

Casio Basic について、少し詳しく調べます。

fx-9860GIII に搭載されている Casio Basic は、2006年に海外で発売された fx-9860G とそれ以降に発売されたグラフ関数電卓、そして fx-5800P に搭載さているものと同じカテゴリに属します。これらの Casio Basic は、構造化風コーディングができて意外に高機能です。当ブログでは、このカテゴリを新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2005年発売 fx-9860G (生産中止)
 - 2006年発売 fx-5800P
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20と同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro
 - 2017年発売 fx-CG50
 - 2020年発売 fx-9860GIII

新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

fx-9860GIII 搭載の Casio Basic は、fx-9860GII と異なる点が見つからず、完全互換と言って良いと思います。

 ⇒ fx-9860GII への移植 - 厄介な旧来の命令
 ⇒ Casio Basic 機種間の互換性

当ブログで公開している Casio Basic入門逆引きCasio BasicCasio Basicコマンドリファレンスプログラムライブラリ は、fx-5800Pfx-9860GII の違いを理解しておけば、そのまま fx-9860GIII に適用できます。
 
 
<目次に戻る>
カタログ機能

fx-9860GIII には、fx-9860GII と同様にコマンドの一覧を検索して入力できるカタログ機能が備わっていて、
[SHIFT] [4] (GATALOG) を押すと、カタログ画面が現れます。

Cat_GII  Cat_GIII_1 
左が fx-9860GII で、右が fx-9860GIII です。

左の fx-9860GII に比べて右の fx-9860GIII では機能が増えています。1つは HIST メニュー(履歴メニュー)の追加で、もう一つは一番上の行の "Catalog" の右に検索入力欄が追加されています。過去に検索して入力したコマンドを再入力するためには HIST メニューは大変便利です。 検索入力に1文字入れると絞り込み検索が行われるので、コマンドがうろ覚えの時に便利です。

CTGYメニューを選ぶとジャンル別一覧が現れます。

Cat_GIII_2  

履歴メニューは、fx-CG20 で追加され fx-CG50 でさらに改善されていますが、fx-9860GIII には fx-CG50 の機能が引き継がれています。 
 
<目次に戻る>
プログラムリスト [2020/04/07 追記]

ProgMenu 

fx-9860GIII のプログラムリストは、fx-9860GII と変わっていません。fx-CGシリーズのように、アルファベットキーを押した時にそのアルファベットで始まるプログラム名にジャンプする機能は無く、この点でも fx-9860GII と変わりません。


<目次に戻る>
Casio Basic の処理速度

fx-9860GII シリーズ用に作成したプログラムが そのまま fx-9860GIII で動作します。そこで、いくつかのプログラムの処理速度を fx-5800P、fx-9860GII、fx-CG50 と比較してみます。fx-9860GIII は g1m ファイルが動作します。

 計算主体のプログラム

PRIME - 素因数分解

ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GIII / fx-9860GII 用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動すると...

Prime_1  
数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。
このプログラムの実行中は、ビジーマーカー以外に表示の更新が無いので、計算速度の比較に向いています。今回は、以下の10桁の数の素因数分解の計算時間を比較します。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG50 の画面は以下のようになります。

   Prime_2 Prime_3 

機種別処理時間の比較
fx-CG50fx-9860GIIIfx-9860GIIfx-5800P
118 MHz59 MHz29 MHz---
46秒69秒89秒444秒
11.51.939.65
0.6711.297.05
0.520.7818.73

fx-9860GIII の計算処理は、fx-9860GII より 30% 程度速くなっていますが、fx-CG50 よりも33%遅くなっています。

計算速度の違いは、クロック数の違いと相関していることが分かります。

  
<目次に戻る>
動きのあるテキスト出力プログラム

PYTHA - ピタゴラス数探索

ダウンロード

- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII への移植 - ピタゴラス数 を参照。

このプログラムを起動すると1つめのピタゴラス数を表示して一旦停止します 。
 [EXE] キーを長押しすると、連続的に次々とピタゴラス数が表示し続けます。
そして、500個のピタゴラス数を探索して表示するまでの時間を計って比較します。
    Pytha_1

このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。
500個のピタゴラス数が見つかるまでの時間を、機種別に比較してみました。

機種別処理時間の比較
fx-CG50
fx-9860GIII
fx-9860GII
fx-5800P
87秒
57.2秒93秒
441秒
10.661.075.07
1.5211.6324,0
0.940.6214.74

fx-9860GIII は、fx-9860GII の1.6倍弱の処理速度、fx-CG50 の1.5倍程度の処理速度になりました。
fx-9860GIII は、Locateコマンドによるテキスト更新速度が大きく向上しています。
 fx-9860GIIILocateコマンドによるテキスト更新速度は、fx-9860G以降の新世代Casio Basic搭載機で最速です。

 
<目次に戻る>
動きのあるグラフィック出力プログラム

MONTECAR - モンテカルロ法による円周率計算

ダウンロード
- fx-9860GII用 g1m ファイル
- fx-CG50 / fx-CG20用 g3m ファイル

※ 使い方やプログラムソースについては、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

 GIII_Monteca_1 GIII_Monteca_2

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、グラフィックスの Textコマンドと Plotコマンドによる表示更新を頻繁に行うものです。そこで、Text と Plot を500回繰り返す時間を、機種別に調べて比較してみました。
機種別処理時間の比較 
fx-CG50
fx-9860GIII
fx-9860GII
174秒
87.5秒
135秒
10.500.78
2.0011.54
1.20.651

fx-9860GIII は、fx-9860GII の 1.5倍の処理速度を達成。しかも fx-CG50 の 2倍の処理速度になりました。
fx-9860GIII は、TextコマンドとPlotコマンドによるグラフィックス更新速度が大幅に向上しています。

fx-9860GIIITextPlot コマンドによるグラフィックス更新速度は、fx-9860G 以降の新生代Casio Basic搭載機で最速です。

 
<目次に戻る>
さらなる高速化

fx-9860GIII は、Casio Basicによるテキストならびにグラフィックス出力処理速度が大幅に向上していることが分かったのですが、それでもゲームなどのピクセル単位での描画が多いプログラムには全く不十分です。プログラムをより高速化するには、現在のところ2つの方法があります。1つはチューンアップ (オーバークロック)ツール による高速化、もう一つはアドイン版 Casio Basic - C.Basic の利用です。

チューンアップ
これまで、fx-9860Gfx-9860GII そして fx-CG10 PRIZM / fx-CG20 そして fx-CG50 に対応したオーバークロックツールが、sentaro様により提供されています。いずれも比較的安全性が確保されており、私も愛用しています。但しオーバークロックは、最悪ROM に記録されている内容が損傷をうけて電卓が起動できなくなってもメーカー保証を受けられないので、自己責任で利用しましょう。

 Casio グラフ関数電卓を限界までチューンアップ

fx-9860GIII 向けには、チューンアップツール - Ftune3 が提供されています。 


本ブログでは、作者の sentaro様から直接サポートを受けられるように、以下の以下のエントリーを用意していて、そこでは Ftune3 のダウンロードと質問ができます。

グラフ関数電卓のオーバークロック - Ftune / Ptune -

安全に使う第一歩は、デフォルトの[F5]での設定を使うことです。


なお、チューンアップは、CPUコアクロックだけでなく、メモリバスクロック、I/Oバスクロック、ウェイトなどを機種に応じて調整します。

 
アドイン版 Casio Basic (C.Basic)
C.Basic は、fx-9860GII を含む fx-9860Gシリーズ、そして fx-CGシリーズに対応しています。開発者はチューンアップツールと同じ sentaro様です。

C.Basic は、純正Casio Basic のソースをほぼそのまま実行可能で、特にグラフィック描画の高速化は目を見張るものがあります。
どのくらい速いかは、ここ にある動画を見れば一目瞭然です。開発開始以来、現在でも国内外のユーザーの要望に応えつつ、デバッグや機能追加によるバージョンアップが継続しています。

現在では、fx-9860G シリーズ用の C.Basic for FXfx-CGシリーズ用の C.Basic for CG が公開されており、fx-9860GIII には C.Basic for FX が対応しています。

C.Basic のトップページ

 




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: CasioBasicプログラム電卓、fx-CG50

テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-CG20 の概要

初版: 2016/04/18
追記: 2016/06/04
更新: 2017/06/29
追記更新 2017/12/05
周期関数の積分について訂正 2020/05/23 


Casio fx-CG20

[2017/12/05 追記] fx-CG10 / CG20 ユーザーへ福音 - アドイン版 Casio Basic が fx-CG10 / CG20 に対応しました。遅い fx-CG10 / CG20 でも高速処理系を楽しめます。本稿最後に追記しました。

fx-CG20_M

fx-CG20 を入手したので、概要を調べてみました。

fx-CG20 は、寸法や重さは fx-9860GII とほぼ同じで、キー配置や機能も fx-9860GII とほぼ同じです。
Casio Basic プログラムも fx-9860GII の上位互換となっているので、fx-9860GII の Casio Basicプログラムファイルは、一部のコマンドを除けば、ほぼそのまま fx-CG20 へ移植できます。

プログラムファイルのキーワードプロテクトの仕様が fx-9860GII から変更されていて、fx-9860GII では一旦設定したパスワードは削除できませんが、fx-CG20では削除可能です。[2016/06/04 追記]

fx-9860GII と大きく異なるのは、高精細カラー液晶を搭載していることです。精細度が高いので画面の物理的なピクセル数が増えています。従って、物理座標系で動作するコマンド(PxlOnPxlOffPxlChgPxlTest、Text)は互換性がありません。また、Xmin, Xmax, Xdot に関する挙動も一部異なります。

このようなグラフィックスコマンドを用いたプログラムファイルは、fx-CG20 へそのまま移植すると描画動作が異なってしまいます。面白いことに、物理座標系で動作する Text コマンドだけは、そのパラメータで座標を指定する部分が、転送作業後自動的に変更されて、互換性が保たれます。

fx-9860GII と fx-CG20 の互換性という点では、キー配列と割り当て機能が殆ど同じ([5] キーに [SHIFT] [5] (FORMAT) が追加されているのが唯一の違い)で、関数電卓としては全く同じです。ちなみに積分計算は高速化されています。

ここでは、主に Casio Basicを使うことを念頭において、fx-CG20 の特徴やfx-9860GII から変化した点などを実際に調べて、その結果を紹介します。
 
 


さて、fx-CG20 に搭載されている Casio Basic は、2006年に発売された fx-5800P 以降の機種に搭載されている 言語との互換性が高く、見かけによらず高機能です。当ブログでは、これらの言語を新世代 Casio Basic と呼んでいます。

< 新世代Casio Basic搭載機 >
 - 2006年発売 fx-5800P
 - 2007年発売 fx-9860G (OS Ver 2 以降)、生産中止
 - 2009年発売 fx-9860GII
 - 2010年発売 PRIZM fx-CG10 (北米のみ)、fx-CG20とほぼ同じ
 - 2012年発売 fx-CG20
 - 2013年発売 fx-FD10 Pro


新世代 Casio Basic については、Casio Basic の勧め を参考にしてください。

新世代 Casio Basic は、fx-5800P、fx-9860GII、fx-CG20 と機種が異なっても、一定の互換性が確保されています。当ブログでも fx-CG20 や 搭載 Casio Basic に関する記事を今後公開してゆくつもりです。


目 次

fx-CG20 の外観 / 概要

 寸法 / 重さ

 外装 / デザイン

 表示 / 出力

    テキスト表示
    グラフィックス表示
     1ピクセルの細線描画プログラム
     3ピクセルの標準線秒がプログラム

 カラー表示

 キー配置 / キー入力

 プログラムリストの利便性

 関数電卓として

    メモリバックアップ機能
    ユーザーデータ・バックアップ機能
    複素指数関数
    積 分
    周期関数の積分

fx-9860GII から fx-CG20 へのプログラム移植

 電卓同士を繋いで直接転送

 PCとのリンク

プログラムの動作比較

 互換性

    テキスト表示のプログラム例
     入力ボックス
     TempConv
     TimeZone
     HitBlow - Hit&Blow ゲーム

 処理速度

    計算主体プログラム例
     PRIME - 素因数分解

    動きのあるテキスト表示プログラム例
     PYTHA - ピタゴラス数探索

   動きのあるグラフィックス・プログラム例
     MONTECAR - モンテカルロ法

まとめ...のようなもの

 互換性の利点

 動きのあるプログラム

 fx-CG20 に期待するもの
 
追 記 



fx-CG20の外観 / 概要

   5800P_9860GII_CG20 
 左から、fx-5800P、fx-9860GII、fx-CG20

主な仕様
機種fx-5800Pfx-9860GIIfx-CG20
液晶ディスプレイ
Casio Basic Graphics 出力
Caso Basic Text 出力
表示種別
モノクロ、96 x 31 ピクセル
なし
16 桁 x 4 行
テキストのみ
モノクロ、128 x 64 ピクセル
127 x 63 ピクセル
21 桁 x 7 行
 
テキスト、グラフィックス
カラー、384 x 216 ピクセル
379 x 187 ピクセル
21 桁 x 7 行
テキスト、グラフィックス
寸法 (mm)163 x 82 x 15184 x 91.5 x 21.2188.5 x 89.5 x 20.6
重量 (g)150260220
電池 / 寿命単4電池 x1 / 1年単4電池 x4単4電池 x4 / 140時間
仮数+指数10桁+2桁10桁+2桁10桁+2桁
内部演算桁数15桁15桁15桁
プログラムメモリ容量最大28.5 KByte最大 62 KByte最大 61 KByte
プログラムファイル名最大12文字最大8文字最大8文字

▲目次に戻る


寸法 / 重量

fx-9860GII と fx-CG20 はほぼ同じサイズ、重量は fx-5800P よりも厚みが1.5倍程度(カバーを付けると2倍程度)あって、一回り大きい感じです。


外装 / デザイン

fx-CG20 は、一言で言えばかっこいいですね。上半分の天板が透明プラスチックになっていて、矢印キーから液晶までの上全体をカバーしています。これがデザイン上の高級感を出しているように思います。しかし、透明天板は表面硬度が低くて傷つきやすく、使い込んでゆくと傷が目立ってくるのではないか気になります。スマホ用の保護シートを貼るなどの対策が良いかも知れません。保護ケースは、グレーの半透明で少し弾力性のあるプラスチック部材で、これもデザイン性が高いと思います。

▲目次に戻る


表示 / 出力

fx-CG20 は高精細カラー液晶を採用しているので、表現力が高いのが最大の特徴です。

 テキスト表示
Casio Basicでのテキスト表示の範囲は横21桁、縦7行。fx-9860GII と同じです。

CG20_Text 

▲目次に戻る


 グラフィックス表示

fx-CG20 のカラー液晶は、384×216 ピクセルありますが、Casio Basicでのグラフィックスプログラミングで使える描画エリアは、それより狭く制限されています。

Casio Basic での描画エリア制限は fx-9860GII にもあって、128 × 64 のドットマトリックスを搭載していて、Casio Basic で描画できるのは、127 × 63 ピクセルです(Casio Basic入門G01 参照)。

さて、fx-CG20 は fx-9860GII に比べると、Casio Basic で実際に使える描画エリアは、縦横ともに約3倍の精細度となっていて、

 ・横: (127 × 3 - 2) = 379 pixel
 ・縦: (63 × 3 - 2) = 187 pixel


となります。

ViewWindow コマンドによる座標系の設定は、fx-9860GII と互換性が保たれています。
例えば PlotOn コマンドで描画を行うと、fx-9860GII では液晶の1ピクセルが描画されますが、fx-CG20 では3 pixel x 3 pixel の 9 pixel の領域が1ドットとして描画されます。このようにしてグラフィックスが同じ位置に描画され、互換性が保たれています。

高精細液晶の fx-CG20 で、1ピクセルを1ドットに対応させようと思い、

ViewWindow 1,379,0,187,1,0
PlotOn 300,100

を実行すれば、1ドットが小さくなって細かい点が描画されることを期待しましたが、そこまで柔軟ではなくて、1ドットは 3x3 ピクセルのままです。PlotOn などのViewWindow 座標系やデフォルトの論理座標系で、ドット(点)を描画するコマンドは、3x3 の1ドットが描画の単位であり、fx-9860GII との互換性の確保が優先されているようです。

そこで、せっかくの高精細度液晶を活かすために、fx-CG20 の液晶の1ピクセル単位で描画したいと思って調べてみると、いくつかのコマンドは1ピクセル単位の描画に対応しています。

fx-CG20 で追加された細線のスタイル設定 SketchThin コマンド や S-L-Thin コマンドを組み合わせて使ってみると、1ピクセルの幅で直線や円を描画できました。さらに、1ピクセル単位で点を描画するためには、物理座標系で使える PxlOnPxlOffPxlChgPxlTest( ) コマンドが有効だと分かりました。

そこで、高精細カラー液晶で1ピクセル単位で描画するサンプルプログラムを走らせて、概略を調べてみます。

▲目次に戻る


 1ピクセルの細線描画プログラム

ファイル名: THINLINE.g3m

ClrGraph
CoordOff
GridOff
AxesOff
LabelOff
ViewWindow 1,127,0,63,1,0 ・・・(T-1)

Plot/Line-Color Black ・・・(T-2)

SketchThin Circle 63,31,25 ・・・(T-3)

Blue SketchThin F-Line 1,1,127,63 ・・・(T-4)

Red SketchThin Vertical 63 ・・・(T-5)

Magenta SketchThin Horizontal 31 ・・・(T-6)

For 1→A To 63×3-2 ・・・(T-7)
PxlOn A,A
Next


※ このプログラムファイルのダウンロード: THINLINE (細い:THIN + 線:LINE)

このプログラムについて、簡単に説明します。

まず、このプログラムを入力しますが、キー操作は fx-9860GII と殆ど同じなので、fx-9860GII で慣れていると fx-CG20 で楽に入力できます。上のリンクからダウンロードできます。
では、MAIN MENU から Program を選び...

MENU 

Program
 を起動し、THINLINE を選んで実行します。
   ThinLine 

上のソースコードで、冒頭から (T-1) までは、 グラフィックスプログラムの設定です。ViewWindow座標系を設定しています。

ViewWindow 1,127,0,63,1,0 ・・・(T-1)

で、左上の座標が (1, 1) で、右下が (127, 63) になるような論理座標系を設定しています。これは、fx-9860GII の物理座標系に近い設定です。

fx-9860GII の Casio Basic グラフィックス座標系については、Casio Basic入門G01Casio Basic入門G07 でまとめていますので、参考にしてください。

続いて、

Plot/Line-Color Black ・・・(T-2)

では、デフォルトの色を Black に指定しています。

Plot/Line-Color コマンドの入力:
 ショートカットキーが見つかっていません。
 とりあえず以下で入力できます。
 ・[SHIFT] [7] (CATALOG)
 で、現れるコマンドリストから探して入力。

※ 色指定コマンドの入力:
 ・ [SHIFT] [5] (FORMAT)
 ・ [1] (1:Color Command) ⇒ [EXE]
 ・ [1][7] で7色を選ぶ

なお、工場出荷状態では、デフォルトの色が Green になっているようで、Plot/Line-Color コマンドを使わないと、デフォルトは緑色になっているようでです。購入したもの以外に、実機が置いてあるお店で色々と試した結果です。

次の行の、

SketchThin Circle 63,31,25 ・・・(T-3)

は、SketchThin で1ピクセルの幅を指定して、Circle コマンドを実行しています。

Thin_Circle 

続いて、

Blue SketchThin F-Line 1,1,127,63 ・・・(T-4)

では、色を Blue 、線の太さを SketchThin で1ピクセルに指定して、F-LINE コマンドで線を描画します。

THin_F-LINE 

さらに、

Red SketchThin Vertical 63 ・・・(T-5)

では、色を Red、線の太さを SketchThin で1ピクセル幅にして、垂直線描画 Vertical コマンドを実行しています。

Thin_Vertical 

今度は、水平線描画コマンド Horizontal に、色を Magenta に、線の太さを SketchThin で1ピクセルに指定して実行します。

Magenta SketchThin Horizontal 31 ・・・(T-6)

Thin_Horizontal 

最後に以下の3行で、物理座標系で使う PxlOn で点を描画しますが、fx-CG20 の高精細液晶の1ピクセル単位での描画が可能になります。
For 文を使って、左上 PxlOn 1,1 から 右下まで 1ピクセルの点を順に描画してゆきます。

For 1→A To 63×3-2 ・・・(T-7)
PxlOn A,A
Next


ここで、63x3-2 は、187 ですが、分かり易いように計算式のままにしています。Casio Basic で使える描画エリアは、縦 187 ピクセル分です。

ところで、PxlOn コマンドの前に色指定をしていません。この場合は、Plot/Line-Color Black でデフォルト色に Black を指定しているので、これが活きて、自動的に Black 指定となります。

Thin_PxlOn 

▲目次に戻る



3ピクセルの標準線描画プログラム

次に、上の THINLINE プログラムにある SketchThin コマンド を全て削除して、線の幅の1ピクセル指定を無効にして、描画がどうなるかを調べてみます。

ファイル名: NORMLINE.g3m
ClrGraph
CoordOff
GridOff
AxesOff
LabelOff
ViewWindow 1,127,0,63,1,0 ・・・(N-1)

Plot/Line-Color Black ・・・(N-2)

Circle 63,31,25 ・・・(N-3)

Blue F-Line 1,1,127,63 ・・・(N-4)

Red Vertical 63 ・・・(N-5)

Magenta Horizontal 31 ・・・(N-6)

For 1→A To 63×3-2 ・・・(N-7)
PxlOn A,A
Next


※ このプログラムファイルのダウンロード:NORMLINE (標準:NORM + 線:LINE)

これを実行すると、以下のように順次描画が進みます。

Norm_Circle Norm_F-LINR 

Norm_Vertical Norm_Horizontal 

Norm_PlotOn 

同じプログラムを fx-9860GII で実行すると、以下のような出力が得られ、同じようになりました。

9860GII_NormLine 

fx-9860GII では円がデコボコになっていますが、高精細液晶の fx-CG20 ではスムーズな円になっていて、fx-CG20 の表現力の高さがはっきりと現れています。

fx-9860GII での標準の太さは1ピクセルなのに対して、fx-CG20 での標準の太さは3ピクセルで、互換性を保っていることが確認できました。

▲目次に戻る

 
 
カラー表示

テキスト表示やグラフィックス表示に7色(Black、Blue、Red、Magenta、Green、Cyan、Yellow)の色指定を各描画コマンドの前に設定すると描画の色を変えることができます。或いは、まとめて設定するコマンド Plot/Line-Color もあって、これらのカラー表示の様子は上で紹介しました。

テキストのカラー表示は、Locate コマンドの前に色指定を書けば良さそうです。
例えば、Locate コマンドを使ってテキストキャラクタの を画面一杯に表示させ、 の表示のたびに指定する色をランダムに変えています。このプログラムを何度か実行させると、以下のように色のパターンがランダムに現れます。カラー液晶搭載の fx-CG20 の楽しい部分ですね!

CLORTXT COLORTXT2 COLORTXT3 COLORTXT4 

ファイル名: COLORTXT.g3m
For 1→Y To 7
For 1→X To 21
RanInt#(1,7)→N
If N=1:Then
Black Locate X,Y,"■"
Else If N=2:Then
Blue Locate X,Y,"■"
Else If N=3:Then
Red Locate X,Y,"■"
Else If N=4:Then
Magenta Locate X,Y,"■"
Else If N=5:Then
Green Locate X,Y,"■"
Else If N=6:Then
Cyan Locate X,Y,"■"
Else If N=7:Then
Yellow Locate X,Y,"■"
IfEnd:IfEnd:IfEnd
IfEnd:IfEnd:IfEnd
IfEnd
Next:Next


※ 色指定コマンドの入力:
 ・ [SHIFT] [5] (FORMAT)
 ・ [1] (1:Color Command) ⇒ [EXE]
 ・ [1][7] で7色を選ぶ

※ このプログラムファイルのダウンロード: COLORTXT (色:COLOR + テキスト:TXT)

これで、テキスト表示の色指定についても確認できました。

▲目次に戻る
 
 
キー配置 / キー入力 

キーの数と配置はfx-9860GII と同一で、Getkey コマンドで得られるキーコードも全く同じです。

試しに、プログラムライブラリ - キーコード取得 に掲載しているプログラムを fx-CG20 に転送するか、或いはキー入力してから実行して、fx-9860GII と一緒に実行してみると、キーコードが同一であることが分かります。取扱説明書でも、キーコードが同一であることが確認できます。

▲目次に戻る
 
 
プログラムリストの利便性
 
プログラムの編集や実行を行う時のプログラムリストの利便性については、機種間の違いがあります。

例えば、fx-5800P のプログラムリストは、アルファベットを1文字入力すると、そのアルファベットから始まるファイル名までジャンプします。

ProgList3 

一方、fx-9860GII のプログラムリストでは、アルファベットキー入力によるジャンプ機能はありません。

ProgramList ×

fx-CG20 では、例えばアルファベット M を入力してみると...

CG20_ProgList 

...このようにジャンプしました。fx-CG20 には、この使いやすいジャンプ機能があります。

▲目次に戻る

  
 
関数電卓として

fx-CG20 と fx-9860GII は、キーの数と配置が全く同じであるだけでなくて、計算の内部桁が15桁と同じで、各関数の精度範囲も同じなので、fx-CG20 の関数電卓としての使い勝手は fx-9860GII と同じだと分かります。
 
 
▶ ユーザーデータ・バックアップ機能

カシオの関数電卓は電源をオフにすると、作業内容やその際のユーザーデータが消えます。

一方、カシオのプログラム関数電卓 fx-5800P や、グラフ関数電卓 fx-9860GII や fx-CG20 (おそらく fx-FD-10 Proも ...) は、一旦電源をオフにしても、使用モードを変えても、各モードのユーザーデータはバックアップされています。

管理人は、この機能だけでもプログラム電卓を関数電卓として使う価値があると思っていて、日常的にプログラム電卓を関数電卓として使っています。
 
 
▶ 3桁区切り表示

カシオの最新の関数電卓 fx-JP900 / 700 / 500 では、関数電卓として3桁区切りが登場しました。標準電卓には搭載されているのに、なぜ関数電卓には無いのか?登場が遅すぎるようにも思います。

一方で、プログラム電卓には3桁区切り機能は無く、fx-CG20 にもありません。プログラムだけでなく関数電卓としても使う人は多いと思うので、是非とも追加して欲しい必須機能だと思います。

▲目次に戻る
 
 
 複素指数関数
複素数を表示するように設定して、πi  を計算させてみると、fx-5800P はエラー、fx-9860GII は正しく -1 と結果を表示します。

5800と9860、複素数


fx-CG20 でも fx-9860GII と同様に、複素指数関数を正しく計算して、 -1 表示します。

 ComplexExp 

他にも、以下のような計算結果が正しく得られます。

 ComplexExp2 

このあたりも、fx-9860GII と同じになっています。

▲目次に戻る


積 分
 
積分計算速度の比較をしてみます。[2016/04/19 の部分を修正]
機種積分1積分2
fx-JP9005.5秒48.7秒
fx-5800P10.1秒56.7秒
fx-9860GII (SH4A)1.5秒8.4秒
fx-CG201.0秒5.8秒

fx-9860GII よりも速くなっていることが分かります。 

▲目次に戻る


周期関数の積分

積分計算にガウス・クロンロッド法が使われていることから、このアルゴリズムが苦手とする周期関数の積分を行って、タイムアウトする限界を比較してみます。

積分3
機種計算できる nタイムアウトする n
fx-JP900
fx-5800P
fx-9860GIIn ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)
fx-CG20n ≦ 60 Or (n = 64, 128, 256, 512)n ≧ 61 Or n = 2m (m≧10)

これについても、fx-9860GII と同じ結果となりました。

▲目次に戻る

 


fx-9860GII から fx-Cg20 へのプログラム移植

プログラムをfx-9860GII から fx-CG20 へ移植する方法を試してみます。


電卓同士を繋いで直接転送

fx-9860GII や fx-CG20 に添付されている 3ピンシリアルケーブルを使って、fx-9860GII と fx-CG20 を直接繋いで、Casio Basic プログラムファイルを転送できます。fx-CG20 ソフトウェアバージョン 2.02 取扱説明書の「第13章 データ転送」に書かれている通りに操作を行えば簡単に fx-9860GII にある Casio Basicプログラムファイルを転送できます。

下図のように、fx-9860GII と fx-CG20 の間でのデータのやりとりが簡単にできます。

3Pin_Serial_Connection 

...但し、オーバークロックしていると、接続完了までは問題無いのですが、実際に転送を行おうとすると、エラーになります。
電卓間を 3Pin シリアルケーブルで繋いでデータ転送する場合は、ノーマルクロックにしましょう。

▲目次に戻る


PCとのリンク

fx-CG20 に添付されている USBケーブルで、PCと電卓を繋いで、取扱説明書(上記と同じ第13章)に従って操作すると、PCから見て電卓が外部ドライブとして認識されるので、あとはPC上の操作だけで、ファイルの転送ができます。

そこで、私は、購入時の fx-CG20 内のデータを全てバックアップしました。バックアップしてあれば、電卓をリセットしてデータが無くなっても、元に戻せます。

PCとのリンクに関しては、オーバークロックしていても今のところ問題が出ていません。


=====


さて上記のいずれの方法でも、fx-9860GII のCasio Basicプログラムファイルを fx-CG20 へ転送すると、ファイルはfx-CG20 用に自動変換されます。プログラムファイルの拡張子が、g1m から g3m へ変換されます。さらに、Text コマンドの1つめと2つめのパラメータは座標を指定しますが、座標値設定は自動的に3倍 (x3 を付加) してくれます。

1例を挙げると、


Text_Parameter 

fx-9860GII のソースコードが

Text 7,3,"    "
Text 13,3,"      "

となっていたものが、転送されると上図のように、自動的にパラメータの座標値に( ) を付け、さらに x3 を付加します。

但し、逆向きの転送、つまり fx-CG20 のCasio Basicプログラムファイルを fx-9860GII へ転送する場合は、Text コマンドのパラメータの座標値は、自動的に3で割る変換はしません。fx-CG20 が上位互換ということなのでしょう。

さて、fx-9860GII から fx-CG20 へプログラムファイルを転送する場合、Text コマンド以外の物理座標系で動作するコマンド PxlOn、PxlOff、PxlChg、PxlTest については、パラメータの座標値を自動的に3倍にしません。これらのコマンドが使われているプログラムは、転送しただけでは互換性が得られないので、手直しが必要です。

一部のコマンドを除き、上のいずれかの方法で fx-9860GII から fx-CG20 へ Casio Basic プログラムファイルを転送するだけで、殆どのプログラムがそのまま fx-CG20 で動作するのは、とても便利なことです。両機間の Casio Basic の互換性の確保をカシオが考えていることが分かります。

▲目次に戻る
 
 


移植プログラムの動作比較

互換性

テキスト表示のプログラム例

一部のグラフィックスコマンドを使わなければ、そしてグラフィックスコマンドを一切使わないテキスト表示のプログラムは、fx-9860GII で動作するものは、ソースコードを全く変更しなくても fx-CG20 で動作します。

このエントリーで紹介するプログラムは、全て最初はfx-5800P で作ったオリジナルプログラムで、それを僅かに変更して fx-9860GII へ移植したものです。主に、Getkey コマンドで使うキーコードを変更し、Locate コマンドによる画面出力の配置を変更するだけで、そして旧来の命令を極力使わなければ、新世代 Casio Basic は互換性の高い言語と言えます。

さらに、ここで紹介した fx-9860GII用プログラム全ては、アドインCasio Basic "C.Basic" でも完全動作することを、強調しておきます。
C.Basic - アドイン Casio Basic 参照
 
 
入力ボックス 

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-9860GII用 g1mファイル一式 (ZIPファイル)
- fxCG20用 g3mファイル一式 (ZIPファイル)

※ 詳しくは、入力ボックス 2.1G - fx-9860GII & fx-CG20 専用 を参照

▲目次に戻る
 
 
TEMPCONV

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-9860GII用 g1mファイル一式 (ZIPファイル)
- fx-CG20用 g3mファイル一式 (ZIPファイル)

これらのZIPファイルには、このプログラムで使う 入力ボックス2.1GIN.g1mIN.g3m  が含まれているので、解凍して得られるプログラムファイル(拡張子が g1mg3m のもの) を電卓に全て転送すれば、プログラムが使えます。

※ 詳しくは、Casio Basic入門48 参照
 
▲目次に戻る
  
TIMEZONE

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-9860GII用 g1m ファイル一式 (ZIPファイル)
- fx-CG20用 g3m ファイル一式 (ZIPファイル)

これらのZIPファイルには、このプログラムで使う 入力ボックス2.1GINPI.g1m か INPI.g3m が含まれているので、解凍して得られるプログラムファイル(拡張子が g1mg3m のもの)を電卓に全て転送すれば、プログラムが使えます。

※ 使い方など詳しくは、Casio Basic入門23 参照。この記事は fx-5800P 向けですが、プログラムの動作や使い方は全く同じです。
プログラムライブラリ - TimeZone も併せて参照 [2017/06/29 更新]

実は、上記の fx-9860GII用プログラムファイルは、現在開発進行中(テストバージョン)のアドインCasio Basic "C.Basic" で最適動作するように僅かに手を入れたものです(TIMEZONE.g1mの数行と C.Basic 専用サブルーチン TZL.g1mの追加のみ)。グラフィックスの一部のコマンドを使わなければ、或いはグラフィックスコマンドを一切使わなければ、fx-9860GII、fx-CG20、C.Basic そして、おそらく fx-FD10 Pro でも、ソースレベルで完全互換のプログラムを作れます。

C.Basic
は、純正 Casio Basic のソースコードを極めて高速に動作させられるメリットがあので、fx-9860GII や fx-CG20 の純正 Casio Basic とのソースレベルでの完全互換には、大きな価値があります。

▲目次に戻る
 
  
HITBLOW - Hit & Blow ゲーム

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-9860GII用 g1m ファイル一式 (ZIPファイル)
- fx-CG20用 g3m ファイル一式 (ZIPファイル)

※ 遊び方など詳しくは、fx-5800P;Hit&Blow【完成版】 参照。操作方法や遊び方は、fx-5800P 版と同じです。
プログラムライブラリ - Hit & Blow も併せて参照。[2017/06/29 更新]
 
▲目次に戻る
 
 
処理速度

 計算主体プログラム例

PRIME - 素因数分解

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG20用 g3m ファイル

※ 使い方やプログラムソースの詳細は、fx-9860GII への移植 - 素因数分解 参照

プログラムを起動したところ...

Prime1 

数値を入力して [EXE] で素因数分解を始め、[EXE] を押しながら結果を1行ずつ表示させる。

Prime2 Prime3 

<EXE> 表示が出たら、最後の行を示すので、これで素因数分解の全結果となります。


このように、プログラム PRIME を走らせると、計算中表示の更新は無く、CPUの殆どは計算に使われています。例外として、計算中はビジーマーカー表示がありますが、このプログラムは計算速度の比較に使えます。

そこで、以下の10桁の数の素因数分解の計算時間を比較してみます。

計算する数値: 7,849,516,203 = 32 x 9811 x 88897

fx-CG20 の画面は以下のようになります。

   Prime4 Prime5 

機種別、クロック別に計算処理時間の一覧は以下のようになりました。
CPUクロックfx-5800P 純正fx-CG20 純正fx-9860GII 純正fx-9860GII×C.Basic
? MHz444秒---------
29 MHz---81秒 (Down)89秒 (標準クロック)3.8秒
59 MHz---63秒 (標準クロック)55秒3.1秒
250 MHz---29秒 (最大クロック)26秒0.55秒
280 MHz------23秒 (最大クロック)0.50秒 (最大クロック)
オーバークロック---Ptune2 Ver 1.10Ftune2 Ver 1.10Ftune2 Ver 1.10

標準クロックでの結果を比較すると、fx-CG20 > fx-9860GII >> fx-5800P の順になります。
しかし、オーバークロックツールを用いてCPUクロックを揃えて比較すると、表から分かるように同じクロックでは fx-CG20 は常に fx-9860GII よりも少し遅いことが明らかです。fx-CG20 では演算中にカラーのアニメージョンが表示されるので、そのグラフィックス表示が律速になって足を引っ張っている可能性が高いです。

● fx-5800P のCPUクロックは不明ですが、ビジーマーカーが同様な fx-9860GII と同じ演算処理を行っているとして逆算すると、5~6MHz 程度と思われます。

● オーバークロックには、sentaro様作のアドインを使いました。fx-CG20 ではクロックを上げるだけでなく、敢えてクロックを下げて fx-9860GII の標準クロックに合わせました。

● Casio Basic 環境をアドインで提供する C.Basic も合わせて使ってみました。C.Basic は sentaro様によって現在開発中のアドインです。C.Basic の圧倒的な速さは、感動ものです (^_^)/

※ C.Basic について
現在は fx-9860GII 用の C.Basic がテストバージョンとして公開されていて、開発継続中です。 fx-CG20 用は将来の対応になるようです。C.Basic については、アドイン Casio Basic - トップページ を参照ください。

※ オーバークロックツールについて [2016/04/20 追記変更]
オーバークロックはメーカーの保証外の使い方なので、万一の場合電卓が再起不能になる可能性を受け入れ、自己責任で使って下さい。これば絶対の前提条件です。

fx-CG20用のPtune2 や fx-9860GII (SH4A)用のFtune2 では、5個の設定が [F1][F5] キーにプリセットされでいます。[F1] は電卓本来のクロック設定で、[F5] には5つの設定のうち最も高いクロック設定です。

比較的リスクが低いと思われるのは、

fx-9860GII: プリセットの [F5] を選んでおけば、低いリスクでオーバークロックが楽しめると思います。 なお、 [F5] を選んだ時は、235.95MHz(本来のクロック 24.49MHz)となると思います。

fx-CG20: プリセットの [F5] を選んでおけば、低いリスクでオーバークロックを楽しめると思います。なお、[F5] を選んだ時は、CPU 191.69MHz (本来のクロック 58.98MHz)になると思います。

これでは物足りないなら、さらに[→] キーを押すことで、段階的にクロックを上げられますが、リスクが上がることを意識してください。

私の経験では、クロックをかなり高く設定したらRAM異常が発生して、動作がおかしくなったことがあります。この時は必要なソフトウェアを再インストールして復活しました。まだ経験していませんが、一番怖いのが、ROMが書き換わったり消去される場合です。この場合は再起不能となります(危機一髪でこれを逃れた経験があります)。

私の場合は、fx-9860GII × Ftune2 では、目安としては可能な最大クロックから2段階落としたクロックで使っています。、fx-CG20/10 × Ptune2 では、目安として可能な最大クロックから3段落として使っています。

但し、製品に実際に使われている個別の電子部品の限界は製造ロットでも個体でも異なるので、上の私の目安が全ての製品に適用できないことは、申し添えておきます。作者の sentaro 様に質問すれば相談にのってもらえるかも知れませんが、自己責任を了承の上で相談してください。


私の場合は、fx-9860GII 向けに Ftune2 を1年以上使っていて今のところ大きなトラブルを経験していません。fx-CG20 用の Ptune2 は使い始めて数日ですが、既にRAM異常を経験していて、おそらくROM異常で再起不能になる一歩手前まで経験しています。

上の表では、用いたオーバークロックツールの種類とバージョンを併記しています。

[2016/04/24 最新バージョンを追記]
Ftune2Ptune2 については、fx-9860GII のオーバークロック を参照ください。ここから sentaro様のページを経由してダウンロードできます。ご質問があれば、このページにコメントを頂くか、sentaro様へ直接お問い合わせください。
 
▲目次に戻る
 
 
動きのあるテキスト表示プログラム例

PYTHA - ピタゴラス数探索

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード
- fx-5800P用 pdf ファイル
- fx-9860GII用 g1m ファイル
- fx-CG20用 g3m ファイル

※ ピタゴラス数探索プログラムの使い方など詳細は、fx-9860GII への移植 - ピタゴラス数 を参照。

このように、テキスト表示で動きのあるプログラムでは、fx-CG20 は fx-9860GII と比べて速いかどうかを調べてみます。

   Pytha Pytha3  

[EXE]
キーを長押しすると連続モードになって、A、B、C 1組のピタゴラス数が、次々に変化します。つまり、このピタゴラス数探索プログラムは、テキスト表示が常に更新し続けます。

そこで、500個のピタゴラス数が見つかるまでの時間を、機種別、クロック別に調べて比較してみました。
CPUクロック
fx-5800P 純正
fx-CG20 純正
fx-9860GII 純正
fx-9860GII×C.Basic
? MHz
 441秒
---
---
---
29 MHz
---
291秒 (Down)
93秒 (標準クロック)
17.5秒
59 MHz
---
185秒 (標準クロック)
61秒
13秒
250 MHz
---
60秒 (最大クロック)
24秒
3秒
280 MHz
---
---
22秒 (最大クロック)
2.7秒 (最大クロック)
オーバークロック
---
Ptune2 Ver 1.01
Ftune2 Ver 1.02
Ftune2 Ver 1.02

標準クロックで比較しても fx-CG20 は fx-9860GII よりもかなり遅いことが分かります。

同じクロックでは fx-XG20 は fx-9860GII よりも大幅に遅くなっています。fx-CG20 での画面表示のオーバーヘッドが大きい ことがよく分かります。

なお、C.Basic は、この例でもかなり速いですね。

▲目次に戻る
 
 
動きのあるグラフィックス・プログラム例

物理座標系で動作する描画コマンド


MONTECAR - モンテカルロ法による円周率計算

fx-9860GII用のソースコードを変更せず fx-CG20 に転送するだけで、完全に fx-CG20 で動作します。

※ ダウンロード

- fx-9860GII用 g1m ファイル
- fx-CG20用 g3m ファイル

※ ピタゴラス数探索プログラムの使い方など詳細は、fx-9860GII グラフィックス - モンテカルロ法 を参照。この記事では、実際の画面の変化を動画で見られます。

Montecar_1 Montecar_2 

Montecar_3 Montecar_4 

[EXE]
キーを押すと、ランダムに点を打ち始め、それが円内にある割合から円周率を求める、モンテカルロシミュレーションプログラムです。このプログラムは、動きのあるテキスト表示と動きのあるグラフィックス描画を行うもので、fx-CG20 は fx-9860GII と比べて速いかどうかを調べてみます。 

そこで、500個のピタゴラス数が見つかるまでの時間を、機種別、クロック別に調べて比較してみました。

但し、プログラムファイルを fx-CG20 へ転送すると、Text コマンドのパラメータの座標値に x3 が自動的に付加されます。このままだと、x3 の計算を行うことになり、その計算時間が余分にかかることになって、比較には適当でないことになります。そこで、x3 の部分は計算結果の数値に書き換えました。この変更を行ったプログラムファイルを、上からダウンロードできます。
 
CPUクロック
fx-CG20 純正
fx-9860GII 純正
fx-9860GII×C.Basic
29 MHz
513秒 (Down)
135秒 (標準クロック)
8秒
59 MHz
429秒 (標準クロック)
95秒
6.4秒
250 MHz
108秒 (最大クロック)
26秒
1.1秒
280 MHz
---
23秒 (最大クロック)
0.99秒 (最大クロック)
オーバークロック
Ptune2 Ver 1.01
Ftune2 Ver 1.02
Ftune2 Ver 1.02

標準クロックで比較しても fx-CG20 は fx-9860GII よりも非常に遅いことが分かります。

同じクロックでも fx-XG20 は fx-9860GII よりも大幅に遅くなっています。fx-CG20 でのグラフィックス描画のオーバーヘッドが非常に大きい ことがよく分かります。オーバークロックにより CPUクロックや I/O バスを速くしても、純正 Casio Basic では画面更新に一定の時間がかかるため、特にグラフィックス描画が遅いという仕様上の問題がありそうです。

なお、C.Basic は今回の例でも極めて速いです。実は、C.Basic は画面更新のタイミングを最大限速くする工夫がなされているのです。後出しジャンケンで失礼しました。

▲目次に戻る
 


まとめ...のようなもの

ざっと fx-CG20 について調べてみました。

互換性の利点

fx-CG20 の Casio Basic は、fx-9860GII と互換性が高いことが分かりました。特にテキスト表示のプログラムなら、ほぼ完全に互換性が確保されていると思います。その上で、カラー表示の一手間を加えると、表現力の高いプログラムに仕上がります。

さらに精細度の良い液晶を使っているので、とても見やすいプログラムになります。動きの少ないグラフィックス描画をを併用すれは、魅力的なプログラムを書けるでしょう。

これらの点は、fx-9860GII よりも fx-CG20 を使いたいと思わせる魅力です。高精細カラー液晶を最大に活かしたプログラムをいずれ作ってみたいと思います。

▲目次に戻る
  
 
動きのあるプログラム

今回のプログラムの処理時間の比較結果をグラフにしてみます。

Calc 

計算処理だけなら、fx-CG20 は同じCPUクロックで fx-9860GII とほぼ同じ、fx-CG20 が若干遅い程度です。

同じCPU (SH4A) を使っているので、計算時間が変わるとは思えず、この差は演算中を示すビジーマーカーの表示によるものと考えられます。


Calc_Text  

計算だけでなく、テキスト表示の更新を頻繁に行うと、fx-CG20 は fx-9860GII よりも時間がかかるようになります。やはり fx-CG20 の画面更新処理が fx-9860GII よりも遅いことが分かります。


Cacl_Text_Graphics 

グラフィックスの頻繁な更新は、fx-CG20 をさらに低速化することが分かります。テキスト画面よりもグラフィックス画面の更新に時間がかかっていますが、fx-CG20 ではグラフィックス更新がより顕著に遅くなっています。

これらの傾向は、純正Casio Basic の仕様と言えます。グラフィックスは一旦VRAMに出力し、それをLCD(液晶画面)に転送して表示しますが、Casio Basic ではVRAMからLCDへの転送が頻繁に行われていることは、fx-9860GII で分かっています。これは、Casio Basic と C言語で作るアドインの両方で同じ動作を作って、VRAMからLCDへの転送頻度を色々と変えてみることで、確認できています。fx-CG20 でも同様なことになっていると思います。

頻繁な画面更新を行うプログラムは、Casio Basic には向かず、特にグラフィックス・プログラミングには向かないわけですが、fx-CG20 ではカラーデータの転送により時間がかかる筈で、それが表示速度を遅くするのは間違いないでしょう。

動きのあるプログラムは、 fx-CG20 では fx-9860GII 以上に向いていないことを前提にして、プログラミングを楽しみたいと思います。
 
▲目次に戻る
 
 
fx-CG20 に期待するもの

Casio Basic プログラミング機としてみた場合は、どうしても表示にカラーを使いたいという場合は別として、モノクロ表示に限れば、fx-CG20 のパフォーマンスは fx-9860GII より劣る、という結果が出てしまいました。

数学や物理の教育以外の目的で、Casio Basicプログラミングを楽しむのは、マイナーな趣味かも知れません。そんなマイナーな目的で fx-CG20 を評価するのは不適切かも知れません。

本来 fx-CG20 は、高精細カラー液晶を利用して、様々なアドインで数学を楽しく勉強することを主眼に設計されているのは、カシオのホームページやインターネットでの事例集からハッキリと伝わってくるので、その目的には fx-CG20 はとても魅力的でしょう。

残念なことの一つとして、カラーの高精細液晶を搭載しているなら、是非とも日本語表示にも対応して欲しいと思います。中文対応しているのだから日本語対応も簡単な筈です。そして、3桁区切りにも是非とも対応すべきです。

今回の評価では、C.Basic の圧倒的なパフォーマンスも紹介しました。オーバークロックよりも C.Basic が fx-CG20 に対応してくれると、プログラミングがとても楽しくなりそうです。

▲目次に戻る


追記 [2017/12/05]

アドイン版 Casio Basic - C.Basic は、上でみてきたように Casio Basic の上位互換で極めて高速に Casio Basicプログラムを実行できます。これまで fx-9860G シリーズにのみ対応していましたが、fx-CG10 / CG20 / CG50 についに対応し、C.Basic for CG として公開されました。

C.Basic for CG 開発が始動

この高速処理系を使うと、fx-CG10 / CG20 が突如高速Casio Basic機としてよみがえり、fx-9860Gシリーズよりも遙かにきれいな高精細カラー液晶を活かした表現力の高いプログラムを作って楽しめます。

fx-CG50 とほぼ同等のプログラミング環境が得られますが、fx-CG50 よりも消費電力が高いのがハードウェア上の欠点です。

▲ 目次に戻る




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: CasioBasicプログラミング入門プログラム関数電卓

リンク集 | ブログ内マップ

テーマ : プログラム関数電卓
ジャンル : コンピュータ

グラフ関数電卓で観る感染症数理モデル

2020/05/06
ダウンロードリンク修正 2020/05/08
SIR2.g1m 差替えアップデート 2020/05/09
プログラムアップデート 2020/05/11

グラフ関数電卓で、感染症数理モデル - SIRモデル - をグラフ化

新型コロナウィルスのパンデミックに際して、底の浅い情報、信憑性が疑われる情報、噂が蔓延しています。これをインフォデミックと言うそうです。新型コロナウィルスについては、まだよく分かっておらず未知のウィルスと言うべき段階なので、自分の分かる範囲で情報の取捨選択をして納得できる理解をし、それを逐次修正して行動に反映したいと思っています。

地上波TVの情報はあてにならないと感じており、主にインターネットやYouTubeで情報を集めているなかで、感染対策の考え方に東大方式と京大方式があったり、大阪モデルのように自治体によって明確に異なるものがあったり、台湾方式やスウェーデン方式が対局にあるのですが国ごとに違いがあることを知りました。

様々な違いがある一方で、世界各国の対策全てに共通する感染症の数理モデルの基本が、およそ100年前のスペイン風邪流行期に提出された SIRモデルだと知りました。この数理モデルを少しでも理解すれば、実際にパンデミック対策の基本の考え方を知る良い機会になりそうです。そこで、先ずSIRモデルをグラフにしで、次に重要なパラメータを変えたらグラフがどのように変化するかをビジュアル化しようと思います。

SIRモデルの微分方程式は難しいので、差分形式に変更して数値的にアプローチすれば、エクセルでグラフ化できると考え、その具体的な計算方法を調べました。そして、エクセルでの計算方法をグラフ関数電卓の Casio Basic に移植しました。

実際のグラフ描画のコードは Colon様の支援を頂きました。グラフ描画について経験が殆ど無い管理人には、とても良い勉強になりました。

SIR_CG_1s SIR_FX_1s 
fx-CGシリーズ                 fx-9860シリーズ

高精細度カラー液晶のfx-CGシリーズの方がグラフが圧倒的に観やすいですね。

グラフを描く時に使ったパラメータは、以下の "パラメータ一覧・入力画面" で、変更してグラフ化できます。
SIR_CG_Param_1s 

これらパラメータの意味については、さらに読み進んでもらえば、お分かり頂けると思います。

ファイルのダウンロード
ダウンロードした SIR_Model2.zip を展開すると、純正Casio Basic用プログラムファイルは、g3mフォルダとg1mフォルダにあります。

fx-CGシリーズ:g3mフォルダにある下記4つのファイルを全て fx-CGシリーズの PROGRAMフォルダに転送し、純正Casio Basicで SIR2 を実行してください。
 ・SIR2.g3m
 ・INPI.g3m(入力ボックス 2.1G - 整数版)
 ・INP.g3m(入力ボックス 2.1G - 小数版)
 ・3DS.g3m(3桁区切り

fx-9860Gシリーズ  (fx-9860G OS2.00 以降のモデル):g1mフォルダにある下記4つのファイルを全て fx-9860GシリーズのPROGRAMフォルダに転送し、純正Casio Basicで SIR2 を実行してください。
 ・SIR2.g1m
 ・INPI.g1m(入力ボックス 2.1G - 整数版)
 ・INP.g1m(入力ボックス 2.1G - 分数版)
 ・3DS.g1m(3桁区切り
※ fx-9860G OS1.xx では MENUコマンドが実装されていないため、OS2.00 以降で実行可能
※ fx-9860G OS2.00 以降には、fx-9860GII、fx-9860GIII を含む
※ このプログラムは、現行の C.Baisc for CG Ver 1.45 や C.Basic for FX Ver 2.54 では、純正Casio Basicのグラフ描画プログラムの全てにまだ対応していないので、動作しません。


[2020/05/11: ver 2.1 に差替えアップデート]
  • グラフデータを格納したリストの最大値を求める関数を変更してスピードアップしました
  • グラフデータ準備に多少の時間がかかるので、その間 = Processing data = と表示するように変更しました


目 次
1.はじめに
2.SIRモデルと再生産数 - 接触機会の抑制 80% の謎
3.SIRモデルの可視化 - エクセルでグラフを描く
4.純正 Casio Basic への移植
5.おわりに




1. はじめに

新型コロナウィルス (COVID-19) の世界的な感染拡大で、私たちの生活が大きく変わってしまっています。ご自身やご家族の健康的被害、そして経済的被害に遭われている方々には心からお見舞い申し上げます。さらに、医療関係者、そして国民の生活に必須な生産や物流に携わっている方々に、深い敬意と感謝を捧げたいと思います。

日本は、感染症に対する医療的リソース (専門家と施設) が他の先進諸国に比べて圧倒的に不足している状況で、また強制力を伴った措置の法的立て付けが無く、死者数が欧米諸国に比べて1桁から2桁以上少ない、といったかなり特殊な状況にあります。

2020年5月6日の時点では全体的に感染者数拡大が鈍化する傾向があり、医療施設や介護施設、そして家庭内の感染が顕著になっている状況です。緊急自体宣言が5月31日まで延長されましたが、未知の新型コロナウィルスを "正しく恐れる" ことで、個人が自分の行動を工夫することで、早期に収束が迎えるのではないか、是非そうなって欲しい、と思います。

施設内感染や家庭内感染の調査により、物に付着しているウィルスを人が触れて感染する傾向が高いことが分かってきています。このモノーヒト感染においては、ウィルスが自分の口や鼻、目に入らないことが重要で、ウィルスが付着しやすい手で顔を触らず頻繁に消毒することがかなり有効な感染対策とされています。

マスクは、自分から他人、そして他人から自分への飛沫感染を抑制するだけでなく、口と鼻を手で触らないためにも有効です。手で顔を触らない習慣は身につくものだそうです。さらに頻繁に石鹸での手洗いやアルコールでの消毒を行えば、モノーヒト感染はかなり効果的に抑えられます。

ヒトーヒト感染については、人と人の物理的接触によるウィルスの移動、そして飛沫感染を抑える効果を狙っていると考えられます。日本政府は "接触機会の抑制" を 80% にすることを要請しています。1人の外出を 55% 抑制すると、2人が出会う確率は 0.45 × 0.45 = 0.2025 ≒ 20% になり、3人以上ではさらに低い数値になります。外出を 55% 抑制すれば 80% の接触機会の抑制が達成されます。

新型コロナウィルスは、空中のウィルスがマスクをすり抜けて感染するような "空気感染" は殆どないらしいことも分かってきています。

従って、マスクをして、手で顔を触らず、手洗いや消毒を実施し、外出を 55% 抑制すれば、感染収束に向かう可能性が高いのではないでしょうか?

今は未知のウィルスを相手にしているのですから、ワクチンも治療薬も無く、万一発症すれば医療機関は命を救うためには、出来うる限りの対処療法を施すしかありません。そのための医療関係スタッフと医療機器、そして感染症用の施設、つまり感染症対策の医療リソースを、余裕を持って確保することが最重要課題となっています。

そのためには、感染防止対策を行いながら、感染者数の動向をリアルタイムで追いかけ、今後の動向予測が不可欠です。未知の新型コロナウィルスなので、統計的、疫学的に動向をシミュレーションして、医療リソースが不足しないように施策をうつことが最優先です。そこでは、感染症の数理モデルのシミュレーションが拠り所になるのでしょう。

インフルエンザでは患者数の動向を追いかけるのに、新型コロナウィルスでは何故感染者数で追いかけているのか、不思議に思っていましたが、未知のウィルスだから数理モデルを用いて "感染者" で整理するしかないのだろうと、今は思っています。

感染症や医療のプロでなくとも、我々一般国民は論理的、科学的思考を常にアップデートしてゆきたいものです。そして未知の感染症に対して "正しく恐れる" 態度を持ちたいと思っています。

▲目次に戻る



2.SIRモデルと再生産数 - 接触機会の抑制 80% の謎

SIRモデルは、ほぼ100年前の1920~1930年の間にマルケックとマケンドリックにより提出された数理モデルです。このモデルの基本的な考え方は、今日に至るまで使われているので、それだけ信用に足るものと言えます。ネットで調べると、SIRモデルを基点として様々な発展型モデルが提案され、実際に利用されていることも分かります。

SIR_Equation 
これが、SIRモデルの常微分方程式です。

式を見ているだけでは、なんだかよく分からないのですが、このモデルから導き出される重要な指標の1つが、1人の感染者が何人に感染させるかの指標 -  "再生産数" です。再生産数には、R0ReRt があります。
  • R0:基本再生産数。何も対策をとらない時の病原体の素の感染力を示す。
  • Re:有効再生産数。R0に手洗い、マスク、行動制限などの対策後の感染力を示す。
  • Rt:実行再生産数。感染拡大防止対策に加えて集団免疫率を加味した時の感染力を示す。
基本再生産数 R0 は、英語では R nought (Rノート) や R Zero と呼ばれます。2011年公開の映画 "コンテイジョン" では R nought といっています(最近観なおしました)。R0 は数理モデルの分析から推定される値で、新型コロナウィルスではまだ確定的な値が分かっていません。現在のところWHOによれば、新型コロナウィルスの R0 は、1.4~2.5 程度の可能性が考えられているようです。

代表的感染症のR0:(国立感染症研究所の資料による
  • はしか:12-18(飛沫感染)
  • 風疹:5-7(飛沫感染)
  • おたふく風邪:4-7(飛沫感染)
  • ポリオ:5-7(経口感染)
  • 天然痘:6-7(飛沫、接触感染)
  • インフルエンザ(スペイン風邪):2-3(飛沫感染)
  • ジフテリア:6-7(飛沫感染)
  • 百日咳:12-17(空気感染)

実効再生産数 Rt は、感染拡大対策の要因に加えて集団免疫率を加味したものだと思われます。免疫を獲得する人は感染症が拡大するにつれ増えるので、実行再生産数 Rt は感染症の拡大と収束に伴って変化してくる値です。ドイツなどでは Rt を公表して、国民への指針の根拠としています。合理的ですね。日本でも最近になって 実行再生産数 Rt という言葉を使うようになっています。

さて、日本政府が使っている "接触機会の抑制" という言葉は、どうも不明瞭、不明確に感じています。
ここでは勝手に、
"接触機会の抑制率" = "ウィルスに接触する機会の抑制" = "接触抑制率"
と定義します。

ここで定義した "接触抑制率"を p としたとき、この指標だけで考える有効再生産数は、Re = R× (1 - p) となります。

Re は累乗で効いてくるので、Re = R× (1 - p) < 1 の時は、感染拡大の抑制効果が高くなります。但し、0でない限り感染拡大初期では感染が広がります。これはSIRモデルの式から分かります。

新型コロナウィルスの基本再生産数 R0 は、専門家でもまだよく分かっていないので、例えば大げさに大きな値として 2.5 ~ 4.8 までの値になる時、Re < 1 とするための接触抑制率は、この式から分かります。 

Re 
多分 R0 が 4.8 ということは無い (もっと小さい) でしょうが、あり得ないくらい悪い状況だとしても、接触機会を 0.8 つまり 80% 抑制すれば、Re が1未満になるわけです。

新型コロナウィルスの R0 は 1.4 ~ 2.5 程度だろうとWHO (国際保健機関) が言っているので、この範囲での最悪の値 2.5 の場合は、接触抑制率を 80% にすれば Re は 0.5 となり、拡大防止策に多少手抜かりがあっても余裕を持って感染を抑えられそうですね。おそらくこのあたりが、現在の指針である 80% 抑制の背景ではないかと思われます。

▲目次に戻る



3.SIRモデルの可視化 - エクセルでグラフを描く

常微分方程式を素直に解いて、式を導くのは難しいですが、グラフを描くのが目的なので、差分形式に変換すればなんとかなると考えました。そこで、下記のSIRモデルの常微分方程式から、
SIR_Equation_2 

と、少し工夫した上で、差分形式に変形してみました。

SIR_Equation_4

ここで、パラメータとして、
  • R0:基本再生産数
  • p:接触抑制率 (上述)
  • b:接触抑制を行った時の実際の再生産数 (有効再生産数、Re)
  • c:一旦感染した人が感染力を失う(免疫を獲得するか死亡する)割合
  • N:感染が始まる前 (t=0) の人口 = S(0) の値
  • I(Δt):感染が始まる最初 (t=Δt) の感染者数
  • Δt:差分の刻み
とすると、時刻 t+Δt における S(t+Δt)I(t+Δt)R(t+Δt) の値を S(t)I(t)R(t) を使った漸化式で計算できそうです。

そこで、エクセルには以下のように計算式を入れました(クリックすると拡大できます)。
Excel_Calc

計算式は150行もあれば十分でしょうか?

散布図を描いてみると、以下のようになります。
Excel_SIR_Graph
実際には、右端にある黒い背景のセル(5箇所)は、表で対応するセルへリンクしています。

ファイルのダウンロード
ダウンロードした SIR_Model2.zip にエクセルファイルを同梱していので、これをご覧ください。

パラメータを変えると、赤い感染者数のピークの高さや位置が変化する様子が分かります。
基本再生産数 Ro や、接触抑制率 p を変えて 有効再生産数 Re が大きく1を下回ると、感染者のピークが見えなくなるくらいに小さくなり、感染が拡大しないことがグラフで可視化できます。

最初の感染人口を多くすると、ピークの位置が左にシフトして感染拡大が早まることが分かりますが、感染者ピークの高さはさほど変わりません。これはチョット意外です。

現実に感染者が増え、医療機関のお世話になる人が増えすぎると、医療機関がパンクします。感染者数が医療機関の能力を超えないようにしたいので、有効再生産数 Re をどの程度コントロールすれば良いのかがポイントになります。

Re を小さくすると、感染者ピークの高さが小さくなり、ピークの幅が広がり、ピークの位置が右にずれます。これが対策の狙いだということが、グラフの変化からよく理解できます。

※ 微分液式から差分形式への変換は、100%の自信がありませんので、批判的にご覧頂き、間違いがあればご指摘下さい。

▲目次に戻る



4.純正Casio Basicへの移植

さて、上の差分方程式が正しいものとして、これをCasio Basicに移植します。

実際のグラフ描画の部分は、当ブログの強力サポータである Colon様の手によるものです。これが SIR (Ver 1) です。
管理人は、差分化形式での計算方法を Colon様に提供し、パラメータ一覧・入力部分の作成を行い、SIR2 (Ver 2) にしました。

管理人は、グラフ描画関係の関数をこれまでプログラムで使ったことが無かったので、Colon様のコードはとても勉強になります。きちんと動くプログラムのソースはをよく読むのは、最善の勉強方法ですね。SIR2 のグラフ描画部分は殆ど SIR と同じです。


プログラムの基本構成

tS(t)R(t)I(t) の値をエクセルでの計算式に基づいて、それぞれ List 1List 2List 3List 4 に格納し、このリストで 数式を定義し、最後に DrawFTG-Con 関数か DrawFTG-Plt 関数を用いて、定義した数式をグラフとして描画します。
なお、SIR2 では時間刻みΔt を 1 に固定しました。

fx-CG50 (OS 3.30) / fx-CG20 (OS 3.11) のソフトウェアマニュアル、8-31 ページに以下の記載があります;
Manual8_31

これだけでは簡潔すぎて分かりにくいと思いますので、プログラムの詳細については実際に SIR2 のソースを見て下さい。


プログラムを使ってみる

SIR2 を起動すると、パラメータ一覧・入力画面になります。以下のように初期値を決めました。
SIR_CG_Param_1s ・[0]キーでグラフ描画
 ・[1]キーで基本再生産数 R0 を変更
 ・[2]キーで接触抑制率 p を変更
 ・[3]キーで隔離率(回復率) c を変更
 ・[4]キーで最初の人口 N を変更
 ・[5]キーで時刻1での初期感染者数を変更
 ・[6]キーで横軸(時間軸)の最後を変更
 ・[EXIT]キーでプログラム終了
 ※ 有効再生産数 Re も表示しています

新型コロナウィルスに罹患してから回復するのに2週間程度かかることが分かってきましたので、1週間あたりの回復率=隔離率は 0.5 として良さそうです。これを初期値にしました。それに関連して、時間刻みを1週間としました。

パラメータ一覧・入力画面で、[0]キーを押すとメニューが現れます。
Select_Graph_s 

ここで、Connect タイプか Plot タイプを選択して [EXE] を押すとグラフが描画されます。

SIR_CG_1s SIR_CG_5s 
Connectタイプ                  Plotタイプ

感染者のピークは 28週に現れます。

さて、このグラフ描画で使った初期設定のパラメータでは、有効再生産数 Re = 1 となっています。これは1人が1人を感染させる状況ですので、感染は広がります。

この状態で [F1]を押すと、3つのグラフのどれかを [↑] / [↓] キーで選択できます。赤い色の式が表示されたら、赤い感染者数のグラフが選択されたことになり、分かりやすいです。そして、[←] / [→] キーでグラフに沿ってカーソルを移動でき、カーソルのある位置の座標値が表示されます。これで、ピークの位置にカーソルを移動すると、そこが28周目だと分かります。

これは、グラフ関数電卓内蔵のグラフ描画コマンドに内蔵されている機能です。

グラフが表示された状態で [EXE]を押すとメニューが表示されるので、そこで 3:Reset Parameters を選びます。
ResetParameter_s 
ここで、[EXE][3] を押すとパラメータ一覧・入力画面に戻るので、
接触抑制率 p0.7、つまり70%に変更してから、[0]を押してグラフを再び描画します。

SIR_CG_Param_2s  SIR_CG_2s 
有効再生産数 Re が 0.751 未満になり、赤い感染者ピークが半分以下になり、ピークの位置が47週まで遅れることが分かります。医療リソースに余裕が生まれ、必要な体制を整えるための時間が稼げます。


再びパラメータ一覧・入力画面に戻ります。ここで 接触抑制率 p  をさらに上げて 0.75 にして、グラフを描画します。

SIR_CG_Param_3s SIR_CG_3s 
有効再生産数 Re =0.62 とさらに低くなると、感染者ピークが60週まででは見えにくくなっています。

そこで、x軸(時間軸)を 90 週まで長くするように変更してみます。

SIR_CG_Param_4s SIR_CG_4s 
すると、感染者ピークが大幅に減り、 72週まで大幅に遅れることが分かります。
接触抑制率を上げるのは、確かに大きな効果があることがグラフで可視化できました。

有効再生産数 Re を下げる効果が確認できました。
実行再生産数 Rt は集団免疫率までも加味したものなので、Re よりは小さい値になると思います。

最も単純なSIRモデルに、接触抑制率 p だけを含めた今回の極めて単純なモデルでも、おおまかな傾向が分かりました。


メモリエラーへの対処
ところで、List に多くのデータを格納するので、残りメモリが少ないとメモリ不足によるエラーが発生することがあります。
MemoryERROR_s 

この場合は、メインのアイコンメニューで Memory を選び、メモリマネージャーでリストファイルを削除すれば問題は解決します。
Memory_s MemoryManager_s 
メモリマネージャで[F1]を押して、F1:Main Memory を選び、

LISTFILE_s DeleteLISTFILE_S 

LISTFILES フォルダを [F1]SELECT し、[F6]DELETE します。すると削除確認のポップアップが現れるので、Yes:[F1] を押します。

Deleted_s  

すると、リストファイルがフォルダごと削除されたことが確認できます。これでメモリの問題は解決です。

▲目次に戻る



5.おわりに

最初の1年は Re が小さくなるように行動制限をかけ、次の1年は行動制限を緩くして Re が大きくなったとき、感染者ピークのグラフがどのように変化するかを調べるシミュレーションにするなど、SIR2 プログラムには色々な改造案が考えられます。

今後の政府の方針を見ながら、現実に即したシミュレーションプログラムを作ってみては如何でしょうか?

皆様からのプログラムのご投稿やご提案を歓迎致します。

▲目次に戻る



管理人の独り言:

未知の感染症への対応は、疫学的な正当性と経済的な正当性のせめぎ合いだと思います。疫学的正当性を貫けば経済的死者数(自殺)が増え、経済的正当性を貫けば病死者数が増えます。このせめぎ合いのなかで、死者数を最小化するための着地点を見いださなければなりません。

現在の未知の新型コロナウィルスの蔓延は、過去に事例がありません。特に最近の日本では、幸いなことに感染症(SARS、MARS、鳥インフルエンザなど) の被害があまり大きくならずに済んでいて、諸外国に比べて感染症に関する日本国民全体の危機感が低かったと思います。すなわち国民の代表である政治家も危機感を持っていなかったと思います。

過去に例をみない事態を処理するのは、霞ヶ関の官僚や地方のお役人には苦手な分野です。平時には法律に則って緻密な行政を執り行うのが役人の本来業務です。法律を超えることは許されていません。前例に捕らわれず、新たな法律を作り、時には超法規的な措置を行うのは政治家の役割、政治家にしかできないことです。政治家と役人が緊密に連携し、現実を科学的に理解し、大胆な発想で国民の生命や財産を守って頂きたいと思います。

明治時代の先達は、西欧の Economics に "経済" という日本語を与えてくれました。この言葉は「世を治め、民を救う」という意味の "経世済民" が語源です。疫学的な解決だけでなく、バランスの良い疫学対策と経済対策を強力に進めて頂くよう切に願います。

我々国民は、政治家のパフォーマンスをしっかりチェックし、我々の権利である投票で正しく判断したいものです。


当ブログでは異例の意見表明ですが、今回だけは例外としてお許しください。





応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、コロナウィルス グラフ関数電卓

リンク集 | ブログ内マップ

テーマ : プログラム関数電卓
ジャンル : コンピュータ

速報! CASIO fx-9860GIII 発売間近? - 新しいプログラム電卓

 CASIO fx-9860GIII - モノクロ・グラフ関数電卓の新機種

2020/01/08
追記 2020/01/12
追記 2020/01/13
追記 2020/02/11
修正 2020/02/12
追記 2020/02/16
追記 2020/02/26
修正 2020/02/27
追記 2020/02/29
追記 2020/03/02
追記 2020/03/03
追記 2020/03/20
追記 2020/03/22
追記 2020/03/26
追記 2020/03/30
追記 2020/04/05

2020年1月7日 TI Planet にて、CASIO fx-9860GIII 発売か? という書き込みがあった (sentaro様の情報) 。現行フランス専用版 GRAPH35+E II のインターナショナル版として fx-9860GIII が発売されるとのこと。本記事では、新情報が得られ次第、アップデートしてゆく。

[2020/04/05]
fx-9860GIII の概要を記事にまとめた
fx-9860GIII の概要



[2020/03/30]
fx-9860GIII を入手した
Amazon Franceで 3/20に注文した fx-9860GIII が 3/27 (一週間後) に届いた。なお、ハードカバーのゴム足4つのうち、1つが付いていなかったので、Amazonに問い合わせたところ、ハードカバーやゴム足だけの供給はできないとのこと。メーカーでないので、それは当然だと思う。

左下のゴム足が無い.
MissingRubber 
Amazon Franceから提示されたのは、返品せずに本体価格(€96.65)の25%の返金とするか、全部返品して全額払い戻しにするか、という2つの選択肢であった。迷わず前者をを選んだところ、直ちに25% (= €24.16 ≒ ¥2917) 払い戻しの手続きをしてくれました(但しAmazonのクーポンでの対応)。その結果、今回は送料込みで総額¥12,201で fx-9860GIII を入手したことになる。ゴム足は別途対応しようと考えている。

ちなみに、GRAPH35R+II や fx-CG50 のゴム足も取れやすいという情報を sentaro様から頂いている。そこで、ゴム足の修理については、別途記事にして紹介しようと考えている。



[2020/03/26 12:00]
eBayとセカイモンで入手可能
fx-9860GIII は、eBayセカイモンで出品されていた。

Amazon Franceでは、私が注文した後状況が変わった。fx-9860GIII のページを開くと "このセラーは選択された商品の日本への出荷はできない" 旨のメッセージが追加されるようになった。恐らく次のようなことだろうと思われる。
「日本から注文来たぞ、やべー忘れてた、注意書き追加しとけ」という可能性も……? (Colon様談)

なお、管理人が注文したものは、これを書いている時点で成田に到着して輸入許可を待っている状況で、配達される見通しだ。今後しばらくは、eBayかセカイモンで入手するのが良いだろう。



[2020/03/22]
fx-9860GIII にはバックライト機能が無さそうだ
CASIO INTERNATIONAL のページfx-9860GIII が追加されている。
従来の fx-9860GII のページと比較しながら確認すると、バックライトに関する記述が見当たらない。やはりこの機能は無さそうだ。

ちなみに、CASIO WORLDWIDE EDUCATION WEBSITE のグラフ関数電卓のページにも fx-9860GIII が掲載されている。



[2020/03/20 追記]
実際にfx-9860GIIIを購入した!
Amazon Japan や Amazon USA ではまだ販売されていないので、Amazon Franceで購入した。
Amazon France での fx-9860GIII のページ
当ブログ管理人としては、実機を入手して評価したいのだ。

表示価格は €115.98 だが、実際の本体価格は €96.65 であった。海外向け免税価格だと思われる。日本までの送料は AmazonGlobal Eclair で €28.58 だったので、合計 €125.23、円決済額は ¥15,118 (€1 = ¥120.7231200003) であった。結構高額だと思う。送料無しの本体価格のみで換算すると ¥11,668 となる。

到着したら、色々と調べて見たいと思う。



[2020/03/03 追記] / [2020/03/02 追記] / [2020/02/29 追記] / [2020/02/27 修正] / [2020/02/26 追記] 
ヨーロッパでは3月発売開始!
Amazon France (Amazon.fr) で、fx-9860GIII の予約販売が始まっている (URL修正)のを発見した。Google翻訳で英語にした画像を示す(画像追加)。

AmazonFR2
AmazonFR

2020年3月8日に在庫予定とあるので、カシオからの公式発表前だが 3月上旬の発売開始の可能性が濃厚だ。fx-7400GIII の予約販売はまだ出ていない。

[2020/03/03 追記] 3/3の時点で、在庫予定日が 3/7 に戻っている。今後大きな変化があれば追記する。

[2020/03/02] 3/2の時点で、在庫予定日が 3/14 に伸びている。

[2020/02/29 追記] 2/28 に在庫予定日が 3月7日に前倒しになった。

[2020/02/27 修正]
ところで、115.98ユーロ なので、今のレートが €1 = ¥120 として、¥13,918になる。これに日本の住所までの送料が加わる。

なお、ここで記載されている寸法は、CASIOのサイトの記載内容と異なり、fx-9860GII と同じ寸法が記載されているので、Amazon.fr の記述が間違っている可能性が高いと思われる。実際どちらが正しいのだろうか?



[2020/02/16 追記]
カシオヨーロッパのサイトで新製品として発表
カシオヨーロッパの英語版サイトの Graph Calculator のラインアップ紹介のページで、fx-9860GIII と fx-7400GIII が新製品として記載されているのを発見。
New

ここからリンクされている英語の fx-9860GIII のページでも、バックライト機能有りと記載されているので、期待される。

また、fx-9860GIII のOSアップデートやアドインのダウンロードページも既に公開されている。

ヨーロッパでは、新発売に向けて着々と準備が進んでいるようだ。日本国内で発売されるかどうかが最も気になる。



[2020/02/11 追記 2]
 カシオヨーロッパが、fx-9860GIII と fx-7400GIII を公式発表
https://www.casio-schulrechner.de/de/produkte/grafikrechner/fx9860g3/ (ドイツ語)

fx-9860GIII USB POWER GRAPHIC 3Pyton搭載
アドインプログラム
8行 x 21桁テキスト、64 x 128ピクセル表示
バックライト
61 kB RAM、3 MB フラッシュROM
10桁+指数2桁
PCとのUSBリンク
単四電池x4本
175.5 x 83.5 x 18.7 mm (176 x 84 x 19 mm)
190 g
筐体表&ハードカバー:白、筐体裏:シルバー




このページによればバックライト機能付きとなっているが、本当だろうか? 画像からはバックライトキーが見たらない。ソフトウェアメニューからバックライトのON/OFFを行うのだろうか?

また、8行表示となっているが、最下行のファンクションキーのアイコン表示が含まれてたもので、Casio Basicでは7行しか使えないと思われる (2020/02/12 修正)



[2020/02/11 追記 1]
マニュアルがダウンロード可能になった
TI-Planet の critor様から本ブログの拍手機能経由で情報を頂いた。

"Thank you. :)The fx-7400/9750/9860GIII guidebook is now online : https://support.casio.com/cn/manual/manualfile.php?cid=004008033 If it can help, I've summed up the differences and new features over there https://tiplanet.org/forum/viewtopic.php?t=23498&p=251341#p251341"

fx-9860GIII のマニュアルがダウンロードできるようになっているとのこと。
fx-9860GIII ハードウェアマニュアル (英語)
fx-9860GIII (Ver 3.21) ソフトウェアマニュアル (英語)

発売間近と思われる。
Casio Basic の仕様は fx-9860GII と同じと思われる。Casio Basic に加えて Python も使える。



[2020/01/13 追記]
新デザインと仕様の情報
TI Planet に新製品 fx-9860GIII のデザインと仕様の情報が提供された。これの情報源はイギリスの教育機器販売サイト Oxfird Educational Supplies のページ (上から3項目め) となっている。

CASIO fx-9860GIII 外観デザインについて、キーボードとトップパネルは GRAPH35+E II とほぼ同じですが、ファンクションキーがグレーから白に変更、そして筐体ウラと保護カバーは青から白になるようだ。スウェーデンの販売会社のサイトの画像 (下記参照) と同じになっている。

また、スライド式の保護カバーは、上と下の両方からスライド可能で、裏と表の両方をカバーできるので、4通りの自由度になりそうで、裏に上からスライドしてもUSBや3Pinのコネクタを使えるようなデザインになるとのこと。

 

 fx-9860GIIIGRAPH35+E IIfx-9860GII
 電池 単四 x 4 単四 x 4 単四 x 4 
 電池寿命 (メーカー測定基準) 230 時間 230 時間 200 時間
 サイズ (mm) 18.7 x 83.5 x 175.5 18.7x83.5x175.5 21.2x91.5x184
 重さ (g) 190 190 225
 液晶ディスプレイ
 ・Casio Basic グラフィック
 ・Casio Basic テキスト
 ・バックライト
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
・なし
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
・なし
 64 x 128 pixel
・63 x 127 dot
・7 x 21 文字
・あり
 仮数 + 指数 10桁 + 2桁 10桁 + 2桁 10桁 + 2桁
 内部演算桁数 15桁 15桁 15桁
 プログラムメモリ容量 最大 ~62 KiB 最大 ~62 KiB 最大 ~62 KiB
 メインメモリ (利用可能) ~62 KiB ROM ~62 KiB ROM ~64 KiB ROM
 ストレージメモリ  ~3 MiB SDRAM ~3 MiB SRAM ~1.5 MiB SRAM
 プログラムファイル名 最大8文字 最大 8文字 最大 8文字
 CPU SH4A (SH7305) SH4A (SH7305) SH4A (SH7305)
  クロック ~59 MHz ~59 MHz ~29 MHz
 - FLL:  14.75 MHz x900 14.75 MHz x900 14.75 MHz x900
 - PLL:  FLLx16, 235.93 MHz FLLx16, 235.93 MHz FLLx16, 235.93 MHz
 - IFC: CPUコアクロック 1/4 PLL, 58.98 MHz 1/4 PLL, 58.98 MHz 1/8 PLL, 29.49 MHz
 - SFC: SuperHywayバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz
 - BFC: メモリバスクロック 1/8 PLL, 29.49 MHz 1/8 PLL, 29.49 MHz 1.8 PLL, 29.49 MHz
 - PFC: I/Oクロック 1/16, 14.74 MHz 1/16, 14.75 MHz 1/16, 14.75 MHz
データ容量記号の B (Byte)だが、最近の正式表記は 1 KiB = 1,000 B = 1,024 B, 1 MiB = 1x106 B なので、iB を使用した。



[2020/01/12 追記]
ヨーロッパの販売店ホームページに新製品が掲載される
まだ不確定情報の範疇ではあるが、スウェーデンの教育機器通販のサイトに fx-9860GIII と fx-7400GIII のページが出来たとの情報がありました。TI-Planet のページ (sentaro様の情報)

 fx-9860GIII_sw1fx-9860GIII のページ
 fx-7400GIII のページ

但し商品説明が fx-9860GII のものを切り貼りしたままと思われます。fx-7400GIII についても、重量が230g と記載されておりこれでは現行フランス版 GRAPH35+E II よりも重い数値なので間違いだと思われる。信憑性については要注意だと思うが、一番気になるのが、これらのページで表示された製品画像が、現行GRAPH35+E II のデザインと色がそのままで、製品右上の製品名のところだけが fx-9860GIII  USB POWER GRAPHIC 3 と変更されている。まだ未確定情報の域を出ていない。

この画像が、切り貼りの合成画像でないのならば、[SHIFT][OPTN]でバックライトが使えるところ、[OPTN]キーにバックライトのマークが無いので、バックライト機能は無い可能性もありそうた。











[2020/01/08 初稿]
新モデルはGRAPH35+E II のインタナショナル版
ちなみに、GRAPH35+E II のCASIOページは こちら
マニュアル: ハードウェアマニュアル(仏語) | ソフトウェアマニュアル(仏語)

フランス語マニュアルを眺めたところ、Casio Basic の仕様は fx-9860GII とほぼ同じで、新たに Python が追加されている。さらにアドインプログラムが使え、C.Basic for FX も使える。 液晶ディスプレイは fx-9860GII と同じ解像度でモノクロ。

現行の fx-9860GII よりも小型・薄型・軽量、直線的なデザインで角が丸い形状。デザインコンセプトは fx-CG50 に近い。
 ・現行fx-9860GII : 21.3 x 87.5 x 184.0 mm, 225g
 ・GRAPH35+E II : 18.7 x 83.5 x 175.5 mm, 190g
Graph35+EII
   フランス専用版 GRAPH35+E II

フランスはカシオのシェアが高く、他にもフランス専用版が GRAPHシリーズとしてかなり以前から発売されている。

Amazon.fr での価格は本日時点で、64.39ユーロ (¥7,811, 1€=¥121.3)となっており、fx-5800P の日本国内価格と変わらず(僅かに高い)、Amazon.fr では fx-5800P よりも安い価格設定になっている。

さて fx-9860GIII がどのようなデザインになるのか、楽しみだ。








新たに情報が得られたら、順次追記してゆく予定だ。



応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: プログラム関数電卓、fx-9860GIII

リンク集 | ブログ内マップ



テーマ : プログラム関数電卓
ジャンル : コンピュータ

fx-991MS 2nd edition のイースタエッグ - 診断機能

2020/02/22
追記修正 2020/02/23


fx-991MS 2nd edition について

991MS-2    991MS-2 
  fx-991MS 2nd edition

2002年発売の fx-991MS は国内では2005年には発売中止になっています。ところが、欧米ではつい最近まで継続発売されており、違法な模倣品が広く出回っています。そこで、カシオが模倣品対策として発売したのが、今回取り上げる fx-991MS 2nd edition です。端が丸く、正面からの製品写真を見ると厚みがあるように見えますが、最初の fx- 991MS よりも薄くなっており、僅かに縦が長くなっています。

fx-991MS 2nd edition 紹介ページ

991MS-2_Package 

製品パッケージの箱には、QRコードとホログラムのステッカーが貼ってあり、これで正規品であることが確認できるようになっています。

2nd edition になっても機能は同じですが、関数計算(コーデック)の精度が改善されています。
コーデックの精度を調べるために、角度をラジアンに設定。tan(π/2) = -∞ のところ、近似的に tan(355/226) を計算させると、tan( 演算精度のテストになります。

tan(355/226) = -7,497,258.18532558711290507183
※ ラジアン設定
機種結果
fx-991MS-7,497,094.876
fx-991MS 2nd edition-7,497,258.44
fx-JP900-7,497,258.44
fx-5800P-7,497,258.44
fx-CG50-7,497,258.44

fx-5800P、fx-CG50、fx-JP900 と同じ結果になったので、CPUは現在のものに置き換えられているのでしょう。

この 2nd editionのデザインは、他の機種にも広く適用されています。
海外では 旧MSシリーズや 旧ESシリーズがまだ発売されており、これらが 2nd edition になって同じデザインに変更されています。MS 2nd edition は濃い灰色、ES 2nd edition は黒と、シリーズで異なる色使いになっていますが、シリーズごとに筐体やキーの色とデザインを共通化しているので、品質を向上させつつコスト低減の効果がありそうです。
海外でのカシオ関数電卓の一覧

ところで、旧ESシリーズは青液晶でしたが、2nd editionになって視認性の良い黒液晶に改善されているようです。

国内向けでも同じデザインへの変更が始まっており、fx-375ESAfx-290A も末尾にAを付けて、模倣品対策用の新デザインとなっています。

なお、近日発売予定のグラフ関数電卓 fx-9860GIII がサイズと色以外は、キーのデザインを含めて形状も構造も極めて似たデザインであるのは、興味深いところです。

991MS-2  fx-9860GIII USB POWER GRAPHIC 3 
[2020/02/23 追記]
※ 下記寸法に併せてイメージの縮尺を合わせています。fx-9860GIII は厚みはありますが、縦横が比較的小さいことも分かります。
 fx-JP900:11.1 x 77.0 x 165.5 mm
 ・fx-991MS 2nd edition:11.1 x 77.0 x 161.5 mm
 ・fx-9860GIII USB POWER GRAPHIC 3:18.7 x 83.5 x 175.5 mm



fx-991MS 2nd edition の診断モード

診断モードに入るには、[SIHT] + [7] + [ON] を同時に押します。電源ON でも OFF かには関わらず簡易診断モードに入ります。

簡易診断モードは、一桁の数の加算あるいは減算問題がランダムに表示され、正解の1桁のテンキーを入力すると TEST OK と表示され通常計算モードになります。正解のテンキー以外のキーや[AC]キーを押すと TEST OK の表示無しに通常計算モードになります。

この加減計算による簡易診断モードは、これまでの他のモデルには無い新しいものです。

簡易診断モードで、[8] を押すか、[9] を押すか、[6] を押すかで、それぞれ異なる診断モードに入ります。

先ず、[8] を押した時の処理をみてみます。
操作画面出力
[SHIFT]+[7]+[ON]簡易診断モードに入る
1[8]1つおきにインジケータ点灯
マトリックスが千鳥格子で点灯
2[SHIFT]1つおきに別のインジケータ点灯
マトリックスの千鳥格子が反転点灯
3[SHIFT]ROM512  P0000
AC

と表示
4[AC]10 15 26 31
35 39 44
と表示される
57つのキーを押してキーマトリックス試験を行う (※下記参照)正しいキーを押すと対応する数値が消える
キーマトリックス試験が終わると全ての桁に上段と下段ともの 10桁の8が表示される
8888888888
8,888,888,888
6[SHIFT]電源OFF

※ キーマトリックス試験での表示;
[CONST]を押す10が消える    [5]を押す35が消える
[log]を押す15が消える[1]を押す39が消える
[ ) ]を押す26が消える[0]を押す44が消える
[9]を押す31が消える


次に、[9] を押した時の処理です。[ON]を押せばいつでも診断モードがら抜けられます。
操作画面出力
0[SHIFT]+[7]+[OK]簡易診断モードに入る
1[9]インジケータと全ドット点灯
2[SHIFT]インジケータと全ドット消灯
3[SHIFT]1つおきにインジケータ点灯、ドットが千鳥格子で点灯、7セグが半分点灯
4[SHIFT]1つおきに別のインジケータ点灯、ドットの千鳥格子が反転、7セグが反転
5[SHIFT]ROM512  P0000
AC

と表示
6[AC]◀L  09h  D▶
AC   CASIO
と表示。ここで[◀] [▶} キーで液晶コントラスト変更試験可能
7[AC]00 と表示
8[SHIFT]01と表示、他のキーは受け付けない
9[ALPHA]02と表示、他のキーは受け付けない
10[上矢印]03と表示、他のキーは受け付けない
11[右矢印]04と表示、他のキーは受け付けない
12[MODE]05と表示、他のキーは受け付けない
13[CALC]06と表示、他のキーは受け付けない
14[積分]07と表示、他のキーは受け付けない
15[左矢印]08と表示、他のキーは受け付けない
16[下矢印]09と表示、他のキーは受け付けない
17[x-1]10と表示、他のキーは受け付けない
18[CONST]11と表示、他のキーは受け付けない
19[分数] ~ [ln] まで順に押す12, 13, 14, 15, 16, 17 と順に表示、他のキーは受け付けない
20[(-)] ~ [Ans] まで順に押す18 から 48まで順に表示、他のキーは受け付けない
21[=]TEST OK
AC
と表示
22[AC]診断モードから計算モードへ移行
※ [ON] を押せばいつでも診断モードが中断


最後に [6] を押した時の処理です。
操作画面出力
0[SHIFT]+[7]+[ON]簡易診断モードに入る
1[6]◀L  09h  D▶
AC   CASIO
と表示。ここで[◀] [▶] キーで液晶コントラスト変更試験可能
2[AC]診断モードから計算モードへ移行
 
[MODE]を6回押してから[2]で液晶コントラスト調整ができますがコントラストが定量的に表示されません。[6] で入る診断モードでは16進数の数値が表示されるので、より便利だと思います。



関連ページ:
- fx-JP900 のイースターエッグ - 診断機能
- fx-995ES / fx-993ES / fx-991ES のイースタエッグ - 診断機能
- fx-991MS のイースターエッグ - 診断機能
- fx-290 のイースターエッグ - 診断機能
- fx-260 Solar II のイースタエッグ - 診断機能

- fx-5800P のイースターエッグ - 診断機能
- fx-9860GII / 9860GII SD のイースターエッグ - 診断機能
- fx-CG50 のイースターエッグ - 診断機能




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 


keywords: fx-JP900fx-700JPfx-500JP関数電卓、イースタエッグ、診断機能

リンク集 | ブログ内マップ

テーマ : プログラム関数電卓
ジャンル : コンピュータ

Casio 関数電卓の素因数分解

  追記 2020/01/24

本ブログでは、素因数分解プログラムについて取り上げています。

 ・ fx-5800P で素因数分解
 ・ fx-5800P で素因数分解再び
 ・ fx-5800P 素因数分解 - バグ修正と表示変更
 ・ fx-9860GII への移植 - 素因数分解
 ・ VBAで素因数分解
 ・ fx-5800P 素因数分解 - 高速化 [2020/01/07 追記]

これらの記事の発端は、カシオのスタンダード関数電卓 fx-995ES に因数分解機能が搭載されたことです。素因数分解機能が内蔵されたのなら、プログラム電卓で作ってみようと思ったわけです。但し、自作プログラムは、逆立ちしたって内蔵機能よりも速く計算できません。これは、チョット気になっていました。

そこで、今回は、素因数分解のアルゴリズムの話題です。

実は、すけっぴぃ様から、素因数分解アルゴリズムの効率化に関するコメント(ここ)を頂いており、すぐには役に立つ情報を返信できなかったのですが、心の隅に引っかかっていたこともあって、この話題を少し掘り下げてみます。


 
私の手持ちの電卓で素因数分解ができるのは、最初から機能が内蔵されている fx-995ESfx-JP900、それに作ったプログラムが走る fx-5800P と fx-9860GII の4機種。
Int_fx-995ES Int_fx-JP900 Int_fx-5800P Int_fx-9860GII 
順に、fx-995ESfx-JP900、fx-5800P、fx-9860GII

最近、fx-JP900 を入手し、素因数分解機能を試したところ、fx-995ES よりも大幅に計算が速くなっていて、さらに得られる素因数の桁数が増えています。

幾つかの素因数分解結果を、fx-995ES、fx-JP900、fx-5800P のプログラム、カシオの高精度計算サイトKe!san で行った結果の一覧表を再掲載します。← Casio fx-JP900 (その3) から抜粋

整数fx-955ESfx-JP900fx-5800PKeisan
1,234,567127x(9721)127x9,721127x9721127x9721
98,765,43223x37x(333667)
(1.7秒)
23x37x333,667
(0.4秒)
23x37x333667
(27秒)
23x37x333667
9,516,208,47332x172x(3,658,673)32x172x(3,658,673)32x172x365867332x172x3658673
123,456,78932x(13717421)32x(13,717,421)32x3607x380332x3607x3803

因数分解できない場合は ( ) 付きで表示される仕様で、そこは fx-955ES も fx-JP900 も同じ。
但し、fx-995ES は素因数が4桁以上で ( ) 付きになっていましたが、fx-JP900 では素因数の桁数制限が大幅に緩和され、上の例ですと6桁まではOK。

また、fx-JP900 の取扱説明書17ページを見ると、素因数が 1,018,081 以上の素因数を持つ時は計算エラーになると書かれていますが、上の1つめ、2つめ、3つめの例では、( ) 付きで結果が表示されています。これ以上計算できないが、たまたまそれが素因数だったと解釈すれば良さそうです。( ) 付きの場合は、それが正しいかどうかの保証が無いと言うことでしょう。

4つめの例では、( ) 付きの結果は、さらに因数分解できるが、これ以上計算できないことを示しています。

[2015/06/18 追記]
コメント欄での sentaro様とのやりとりから、求める素因数の桁数を制限すること、そしてCPUの演算速度の簡単な比較から、2と3以上の奇数で順次割り算する単純なロジックても、それぞれの実行時間をほぼ説明できそうだ、と今のところの結論です。(追記終わり)

[2020/01/24 追記]
上記のすけっぴぃさんのご提案にあるように、一旦3で割ればその後は3の倍数でない奇数で割り算すると効率があがります。これを拡張して、割る数として 奇数、かつ 3でない、かつ 5でない、 かつ 7でない整数を順次求めて行くアルゴリズムで3~4倍の高速化ができました。⇒ fx-5800P 素因数分解 - 高速化



素数は整数論の一分野で研究されていて、素数が無限個存在することは、紀元前300年頃に証明されています。しかし、未だに素数を求める公式が見つかっていないし、素数の密度を求める式も見つかっていません。ケースバーケースの近似的な式があるだけです。それだけ神秘的な数が素数と言えるのですが、だからこそ素数は暗号通信の要として、実用上極めて重要なものになっています。応用工学で重要な素数だからこそ、数学教育において素数は重要だと考え、カシオは素因数分解機能を内蔵したのかも知れません。

ところで、遅いCPUを搭載した fx-5800P で走らせた素因数分解プログラムは、処理が遅いので、あまり凝ったアルゴリズムを実装できません。それに比べて内蔵機能の計算が桁違いに速いことが、気になっていました。

そんなとき、fx-JP900 の評価をしていて、正しく計算する条件として求める素数の桁数に制限があることを改めて考えてみました。桁数の制限をかけるアルゴリズムがあって、それを使えば Casio Basic でも速いアルゴリズムを実装できるかもしれないと思いました。そこで、具体的なプログラムにするには、まだ不完全ですが、取りあえず書いてみます。


fx-995ES では3桁以内の素因数に分解して表示することができるのですが、正しい計算が保証できるときの素因数が3桁と言うのは、どういうことか? 例えば、何十個かの素数の表をメモリ内に持っていて、それを使って計算すれば、かなり計算量が節約できるかも知れません。3桁つまり1~999の範囲にある素数は168個で、最大の素数は 997 です。168個程度のデータならメモリに入れておくのは現実的です。与えられた自然数をこの168個の素数で次々と割り算してゆけば、2と奇数で順次割り算するよりも、遙かに計算量が少なそうです。

ある整数の素因数分解を行う時、素因数はその整数の平方根以下になることを使い、さらに2と奇数を順に割り算して素因数を求める計算を、fx-5800P や fx-9860GII 用に書いたプログラムで行っています。このとき、3桁の素数で最大は 997 なので、9972 = 994009 以下の素因数分解は、メモリに保存された168個の素数で順割り算すれば、かなり計算量は節約できます。fx-5800P や fx-9860GIi で作ったプログラムでは、2と奇数で割り算するので、499個の数で割り算しています。つまり、計算量は 168÷499 = 0.3367 つまり 約33%、1/3 にに抑えられます。
Casio Basic での変数参照や配列参照のアクセスに比べて、関数計算する際のテーブル参照は遙かに速いと考えられるので、これで内蔵機能が速いことが説明できそうです。この方法を Casio Basic のプログラムに反映する際は、算術演算に 1~1.5ms 程度かかり、配列変数や行列へのアクセスに20ms程度かかること、そしてこの差を考慮して、本当に速くなるのかどうかを検討する必要があります。


一方 fx-JP900 は、1,018,081 以上の素因数を持っている整数ではエラーになる仕様です。ちなみに 1,018,081 は素数でなくて、これを素因数分解すると 10092 です。fx-5800P のプログラムで計算してみると、1,018,081 未満で最大の素数は、1,018,057 だと分かります。1,000,000 (100万)までの素数は 78,498個あるので、8万個近くある素数の表を不揮発メモリに持っておくのは、関数電卓としてはあまり現実的ではないでしょう。1,018,081 以上でエラーになることから、ひょっとしてこれを実装していることも考えられますが、素因数分解だけのために原価を押し上げるメモリを使うのは疑わしいわけです。

そこで、メモリに保存された素数テーブルを使わず、完全ではないものの、素数を計算して、それで順次割り算してゆく方法は、うまくすると計算量を減らして、高速化できるのかも知れません。或いは、メモリ上の素数テーブル参照と計算の併用も現実的な折衷案かも知れません。

素数の計算については、以下の式が非常に効率よく素数を計算するものとして知られています。
オイラの素数の式 
これはオイラーが見つけた、素数 p を求める式です。全ての素数をもれなく見つけることはできません。
ただ、この式の面白いのは、x  が 0 から 39 の時に得られる数が全て素数だと言う点にあります。但し、x=39 の時得られる素数 1601 以下には、この式で得られない素数が沢山あります。1601 以下の全ての素数を算出できるわけではありません。

さらに、 が 0 から 60 の時は、x = 40, 41, 42, 44, 49, 50, 57 の7個の x 以外で、 p は素数になります。素数を算出する効率は、x が 0 から 60 で計算した61個の値のうち88.5% が素数になります。繰り返しますが、これで得られる3071 以下には、この式の結果以外に多くの素数があります。

xpxpxp
0411322326743
1431425127797
2471528128853
3531631329911
4611734730971
57118383311033
68319421321097
79720461331163
811321503341231
913122547351301
1015123593361373
1117324641371447
1219725691381523
391601
 ・・・・・・
603701
10081017113

ちなみに、x = 1009 の時 p = 1,019,131、x = 1008 の時 p = 1,017,113 となります。つまり、x = 1008 で得られる1,017,113 がこの式でエラーにならない最大素因数 1,018,057 に最も近いものだと分かります。この式では、100万までの素数の47.5% が求められることが調べられていて、効率は半分以下に落ちます。しかし、現在 fx-5800P や fx-9860GII に実装しているプログラムのロジック「2と奇数で約 50万回近く割り算する」よりも、1000回程度の割り算をする方が、計算量が 1/500程度になります。仮に3分かかっていた計算は1秒以下になりそうです。

与えられた整数に対して、先ず先に、このオイラーの式で得られる計算値から素数を選んで、それで順次割り算して、残った余りについて、2と奇数で順次割り算して計算すると言うアルゴリズムが考えられます。オイラーの計算値から少ない計算量で素数を見つけられれば、テーブルと計算の併用で、高速化の可能性があります。x をどの範囲まで使うのか、38 までとするか、60 とするか、1008 までとするか、その中間のどこかにするか、も実際の計算量とコマンドの処理速度から最適点を検討する必要があります。仮に、x = 1000 まで使うなら、1000の47.5% に相当する 475 個の素数で順次割り算するので、500 / 500,000,000 = 0.001% となり、他の計算量と計算時間を低く抑えられれば、大幅な高速化ができるかも知れません。

プログラムの実装は、そのうちやってみようと思います。もし先にプログラムを作られた方は、是非コメント欄で発表してください。お待ちしております。



ところで、余計な話になりますが、

The Asahi Shinbun Blobe - 数学という力 (残念ながら削除されたようです) というサイトでは、素数と円周率の関係、素数と宇宙の真理の関係について解説されていて、なかなか面白いです。素数は現代数学の花形の1なのですね。

ゼータ関数 
これは、リーマンと言う数学者が名付けたゼータ関数というものです。一番右の項は、オイラー積という総積計算で、素数 p がしっかり出てきます。

この式で、s=2 の時は、
ゼータ関数(s=2) 
となって、素数 p のオイラー積 と円周率 π が結びつくことが発見された歴史的な式をゼータ関数で表したものです。素数と円周率の関係式をより一般化したゼータ関数で表現することで、より深く調べることができるというわけです。上の記事によれば、この式を巡った素数の熱い研究が進められているようですね。簡単に素因数分解できる公式が存在するのかどうか?まだよく分かっていません。そのうち見つかる筈と言う人もいれば、存在しないかも知れないと言う人もいます。あまり簡単に計算できると、インターネットなどで使われている暗号が簡単に破られることに繋がるので、大問題です。

脱線すると、このゼータ関数で s=-1 の時は、
ゼータ関数(s=-1) 
なんて、なってしまいます。自然数を無限に足すと、-1/12 になる、なんとも受け入れられない結果です。実は、ゼータ関数は複素数の世界のものなので、一見あり得ない結果に見えるわけです。

カシオの高精度計算サイト Ke!san のココでも取り上げられています。
ここでは、明確に書かれていませんが、s=-1 で、実数の世界を複素数の世界に拡張(解析接続)しています。ゼータ関数の性質として、これはやっても良いこと(s=1 以外で解析接続できてしまう)なので、間違っちゃいないのですが、紛らわしいですね。

1+2+3+4+・・・  は実数の世界と誰でも思うので、自然数の無限和が負の数である -1/12 に収束するなどと言うのは、実数の世界では間違いです。でも複素数の世界では収束するので、ゼータ関数は物理の計算で重宝されているわけです。

素数は大きくなると、まばらになるのか?その密度はどうなっているのか? これもはっきりと分からない問題でしたが、2014年には素数は極端な偏りがなく万遍なく分布することが発見されました。→ こちら


素数の性質の研究は、非常にホットな分野ですね。まぁそれだけ分からないからこそ、暗号に使われるわけです。
深淵な研究は数学者に任せるとして、取りあえずプログラム電卓で素因数分解の高速化が出来るかも知れないということで、一旦区切ることにします。




応援クリックをお願いします。励みになるので...
にほんブログ村 IT技術ブログ 開発言語へ


 



keywords: fx-5800Pプログラミングプログラム関数電卓

リンク集 | ブログ内マップH

テーマ : プログラム関数電卓
ジャンル : コンピュータ

最新記事
検索フォーム
最新コメント
カテゴリ
C# (3)
Visitors
Online Counter
現在の閲覧者数:
プロフィール

やす (Krtyski)

Author:やす (Krtyski)
since Oct 30, 2013


プログラム電卓は、プログラムを作って、使ってナンボ!

実際に触って気づいたこと、自作プログラム、電卓プログラミングについて書いています。

なお管理人はカシオ計算機の関係者ではなく、Casio Basicが面白いと感じる1ユーザーです。


写真: 「4駆で泥んこ遊び@オックスフォード郊外」

リンク
月別アーカイブ
Sitemap

全ての記事を表示する

ブロとも申請フォーム

この人とブロともになる

QRコード
QR