2024年12月28日土曜日

芝村先生のCASIO関数電卓インタビューが出ていた

 X のポストに、以下の記事へのリンクを示すものがあったので、見てみましたヨ。とっても嬉しい内容。

ref. 【現場の電卓】僕がExcelでなく関数電卓を手にする理由~「刀剣乱舞」のゲームデザイナー・芝村裕吏さんにききました
https://www.casio.co.jp/topics/article/2024/K-071/

驚いちゃったなァ。芝村先生、CASIOグラフ電卓使いだったとは。
こうした記事が年末に出て、やはり、2025年のCASIO は、関数電卓方面で何かやってくれそうな、そんな予感がいたします。

一方で、fx-FD10 が「生産完了品」になっていたのは、チョット残念。


2024年11月26日火曜日

fx-CG50 の X post が増えていたので

 fx-CG50 の X post がやたらと増えていたのですが、殆どが、以下の記事を引用したものでした。

ref. 第1回 Python電卓を使ってみよう Pythonが動くリアル電卓「fx-CG50」
https://news.mynavi.jp/techplus/article/calcpython-1/

大手web媒体の連載で、読み応えもありそうですが ... 残念な事に、メール登録しないと読めない。「一見さん、お断り」なのネ。どうせ広告なんだから、吝い事を言いなさんな。

そんな"広告"の中でも、以下のpostは、やす親分の引用でしたネ。シロン ( @_Chiron__ ) 様、多謝であります !

ref. https://x.com/_Chiron__/status/1860534381561151816

で、CG50の後継機種と目されている、fx-CG100の話は、日本では全く聞かれないのでありますが、最近、妙な事を考えておりまして。
fx-CG100では、Add-Ons や CASIO BASIC などが、対応しなくなりそうという事らしい。ストレージも削減されているとかで、どちらかと言うとfx-CG100より「後退」していそうな印象。

他方で、(Sentaro様曰く、CASIOが追っかけている ?) TI の電卓では、upython 対応が徐々に進められていて、最近では、micro:bit を接続して使用する、などの機能が提供されていると。
この micro:bit 接続機能ですが、TIの電卓では以前から、センサーキットやRoverキットなどの接続機能があって、そうしたハードウェア拡張の一環、という位置付けらしい。

実は、fx-CG50でも、センサーキットと接続して、センサー入力したデータを分析するアプリケーションが用意されておりました。センサーキット自体が入手困難な上、手頃ではなさそうなのですが、この辺りは、TIの電卓を追いかけていた様で、まさに、Sentaro様の言う通りであります。
ちなみに、データ分析アプリでは、FFTなどの機能があったりします。結構実用的な感じですが、データを取得し、分析する機能がアプリ側で閉じられているので、外部からデータを放り込んで分析をする、という芸当が出来ない辺り、ショボーンな訳ですネ。
尤も、FFTを使う、という事であれば、XCASに機能があるので、Add-OnsでXCASを使えば、勉強になるんじゃろか ?

で、TI電卓 の micro:bit 接続機能なんかでも、micro:bit に接続したセンサーなどのデータを読み込むみたいな作業が出来るとかで、そうして取得したデータをグラフ表示する、という作例が、以下で紹介されておりました。

ref. TI-Python と micro:bit の連携について
https://qiita.com/inachi/items/8306c73a9ed76e72b28e

原理的には、fx-CG50でもできそうな気がするのですが、目下の所、fx-CG50 の upython 機能は、イマイチ足りない。
fx-CG100辺りでは、upythonの機能を拡充するらしい、という観測もあって、例えばUSB port 経由で通信機能などを充実する事で、micro:bit 接続機能に類似した事が可能になってくれると、TI の追っかけ風で、チョット面白いかなぁ、などと不埒な事を妄想してしまったのであります、ハイ。

2025年、「CASIOがきっと、何かやる」事を期待しつつ。

2024年11月16日土曜日

「fx-CG50 でもやってみた」チャレンジ ?

 先日、つぎの post を見かけました。

https://x.com/RR_Inyo/status/1853820210874376698

実機が手元にないのでオンラインシミュレータですが,0になりました!
NumWorksは根号などをある程度そのまま扱うようです。

(sqrt(2)-1)^10 - (3363-2378*sqrt(2)) = 0
Numworks の話題でしたが、それでは、我らが fx-CG50 ではどうなのかと試した所、残念ながら fx-CG50 では、累乗の計算について、整式での計算は行いませんでした。

「くやしいのう、くやしいのう」

しかし、諦めが悪いので、どうにかして、同様の計算結果が得られないモンか、と、考えてみましたヨ。

この整式の計算自体は、2項定理の計算を行えば出来そうです。
(sqrt(2)-1)^n の計算でありますから、sqrt(2) の累乗部分を、うまく括りだすことが出来れば、当初の目的は達する筈であります。

そこで、2項定理の計算で用いる「組み合わせ」の機能をもつ BASIC で、かんたんなプログラムを作成しました。

```
For 0->N To 20

0->A
0->B

For 0->K To N
If MOD(N-K,2)=1
Then
N nCr K*2^((N-K-1)/2)*(-1)^K+A->A
Else
N nCr K*2^((N-K)/2)*(-1)^K+B->B
IfEnd

Next

A->List 11[N+1]
B->List 12[N+1]

Next
```
これを実行すると、20次までの累乗について、List11, List 12 に、係数の数列が保存されます。
この数列は、(sqrt(n)-1)^n = A*sqrt(2) + B と展開した場合、
List 11 ; A
List 12 ; B
が保存されます。

例えば、(sqrt(n)-1)^10 = -2378*sqrt(2) + 3363 でしたが、
List 11[11] = -2378
List 12[11] = 3363
となる寸法。(残念ながら、リストの添字は1始まりなので、10乗の場合には、添字11に保存される具合)

ここまで苦労したものの、fx-CG50 には XCAS が作られております。これを使えば「答えイッパーツ !」でしたね。

(sqrt(2)-1)^10 と入力し、simplify() を適用する事で、所望の結果が得られましたヨ。さすがは XCAS。

で、延々作業したものの、n->inf の極限では、(sqrt(2)-1) < 1 なので (sqrt(2)-1)^inf -> 0 に収束するという、泣けてくるオチまで用意して、このネタを終わりにしたいと思います。

2024年10月11日金曜日

10000回のループを使って、ちょっとした作業

 fx-CG50 の upython の実行速度に甘えて、ちょっとした作業をやってみました。
数列 1/k の総和を求める作業です。

sum(1/k, k, 1, 10000) という表記をしてみましたが、upython で書けば、こんな作業です。

sum = 0
for k in range(1, 10001) :
   sum = 1/k

1/k 自体が、無限大で 0 に収束するので、「総和も 0 に収束して紅か ?」と考えるのですが、実際には、無限大まで加算すると、発散してしまうのですね。

取り敢えず、10000まで累積総和を計算させてみます。
10000以上にすると、結果はさらに増えていくのですが、この計算、加算の数を多くすると、それにつれて累積数が増えていくのです。
それを「視覚的に」納得しようと。さて、どうするか ?

「手始めに、1から10000までの区間で、グラフを描いたらよかろう !」

グラフ電卓なので、簡単操作でグラフを描いてくれそうですが、実際には、チョット面倒な事になりました。「級数の総和を求める」というのは「関数」で書けません。

そこで、upython のパワーでグラフを描いてみることにしました。
しかし、やってみると解りますが、どうもこの級数和、収束するのかしないのか、はっきりした感じでは掴めません。

そこで「飛び道具」的な手段を導入しましました。対数目盛りのグラフです。
グラフ電卓ですから、対数目盛りのグラフなんかも簡単に描けそうなものですが、実際には、そういった手段が提供されておりません。

そこで、簡単に横軸対数目盛りのグラフを描く、upython スクリプトを用意しました。
このスクリプトを読み込ませると、じわじわと累積して、点を打っていきます。
ループ上限が10000にしてあり、横軸のみを対数目盛りにして、累積数の点を打っておきます (縦横の軸までは描きません) 。

描かれたグラフをみるとわかりますが、それまでは「どこかで伸び悩みそうな累積数のグラフ」が、横軸を対数目盛りにすると、直線になっているのが解ります。
直線ですから、この先、いくらでも増えていくのは想像に難くありません。

こうして、視覚的に納得する事ができました。流行り(?)の「納得と共感」です。

今回も upython の計算速度を利用した「力技」な話題となりました。
こうしたちょっとした計算が手のひらの上で愉しめます。

数学的には、奥深い話題が展開できそうなのですが、その辺りは目下、お勉強の最中なので、機会がありましたらいずれまた、としておきます。

【スクリプト】

from casioplot import *
import math

wi=382
he=191
xs=1
xe=10000
ys=0
ye=10

sum=0
for i in range(xs,xe+1) :
  sum+=1/i
  ii=(math.log10(i)-math.log10(xs))/(math.log10(xe)-math.log10(xs))*wi
  jj=(ye-sum)/(ye-ys)*he
  set_pixel(int(ii),int(jj))
  show_screen()


2024年10月4日金曜日

自家製 copysign() の顛末

 過日、Biomorph for fx-CG50 の記事で、自家製 cmath module を開陳致しました所、K 様から、コメントを頂戴致しました。

K 様の方法で cmath.sqrt() を書くと、計算がスムースに行く上、境界部分での符号の扱いも良い具合になるのですが、残念な事に、fx-CG50 には math.copysign() がなく、適用な手段で代替関数を用意する必要があると、K 様も申されておりました。

そこで、copysign() 風の関数を自作すれば、よかんべ、と調べ始めたのですが、copysign() では、符号チュエックのため、0.0 と -0.0 という値に対応するという話でありますネ。ナニソレ ?

浮動小数点数も符号が用意されているのは解っていたつもりですが、折角だから、0.0 にも符号を付けて、0.0 と -0.0 の2つを用意しよう、という話らしい。
処理系 (コンパイラ) が、ゼロ符号に対応した場合に、python もこれに対応できるらしく、最近のモダンな処理系では、-0.0 という浮動小数点数に対応されている様です。

そんな具合で、我らが fx-CG50 の upython も、-0.0 という数値自体は扱える様に出来ております。
シェルを呼び出して、-0.0 と入力すると、そのもの -0.0 が答えとして返ってきますネ。
しかし、数値としては 0.0 と -0.0 、同じ「ゼロ」でありますから、== で比較すると、True が返ります。何なの、ソレ !?

では、アトムの比較を行う、is で比較をしたら区別が出来るんじゃないか、と思ったのですが、fx-CG50 の場合、これはアカンのですネ。

>>> -0.0 is 0.0 
False
>>> -0.0 is -0.0 
False
>>> 0.0 is 0.0 
False


なんと、0.0 という同じ値を比較しても、False となりますネ。「どうなっとんジャイ、ワレ !」

この謎を解く鍵は、アトムのid を取得する id() でした。

>>> id(-0.0)
2351257904
>>> id(-0.0)
2351258160 
これは一例ですが、同じ操作をしているのに、毎回、id が変化します。

idという値、どうもアトムを保持するheap空間のテーブルインデクス、有り体に言えばポインタの様な値らしい。
これが毎度違う値になるというのは、毎度、浮動小数点数値アトムが振り出されてheapに作られる、という具合の様ですネ。
PCのpython では、0.0 は一意に決まった数値アトムという扱いなので、何度操作しても変化する事はなさそうですが、電卓の方は、そこまで手が回っていないのかも知れません。
( 但し、当方の fx-CG50 upython は、チョット古めです )

こうなると、0.0 と -0.0 の区別は難しいなァ、と思っていたのですが、(数値アトムを)文字列に変換する関数 str() がありました。これを使うと、0.0 , -0.0 、両方とも表示通りに文字列になるのです。これで、0.0 と -0.0 の区別が出来ますネ、ヨカッタ、ヨカッタ。

そんな事が解ったので、自家製の copysign() として、チョット苦し紛れなコードを開陳した次第です。「ご査収ください」

#  copysign() like something ...
def  csign(x, y) :
  if y == 0.0 :
    if str(y) == '-0.0' :
      return -abs(x)
    else :
      return abs(x)
  else :
    if y < 0 :
      return -abs(x)
    else :
      return abs(x)

本来なら math.copysign() と、math module にあるものではありますが、後から追加するわけにも行かないので、自家製cmath module の中に、邪魔にならないよう csign() と名前を変えて導入致しました。

これを使ってcmath.sqrt() もK 様提案の方法にしたのですが、cmat.csign() が足を引っ張っているので、速度は余り期待できません、ハイ。

さて、こうした具合で動いている upython ではありますから、以前に、電卓喫茶様が「fx-CG50 upython で 色指定をタプルで書くと、速度が激落ちする」という報告をされておりました。これは、毎度、数値を含むタプルを生成して、heapに置いているから、時間が掛かっているのではないかという推測をしたのですが、少しは判断材料になったのかも、と思う所です。色指定のタプルを予め作っておき、適当な変数名にbindして、変数を呼び出す様にする事で、オーバーヘッドが大分少なくなる模様です。


2024年9月28日土曜日

fx-CG50 で Biomorph を描く

 Sentaro様から「面白いモノはナーイ ?」との事で、fx-CG50 upython をしばき倒す(?) 「Pickovers' Biomorph」のコードを動かしてみました。

当方が、Pickovers' Biomorph を知った、そのネタ元と言いますと、昔、図書館で読んだ、日経サイエンス誌の連載「コンピューター・リクリエーション」(A. K. Dewdney) なのですが、Pickover biomorphs で検索すると、およその所が解ると思います。

Mandelbrot set graphics の作業の様ですが、少し異なる部分もあります。
詳細はコードをご参照ください。

Pickovers' Biomorphs の場合、繰り返す計算式を色々と変更する事で、描かれる画像が多様に変化します。
このコードでは、

    z = z*z+c
を繰り返しますが、これを、例えばつぎの行にある様に、
    z = cmath.sin(z*z)-c
とかに変更すると、画像が大きく変化するのです。

複素数平面の座標値に数式を繰り返し適用するため、複素数を扱う関数が必要になりますが、残念ながら、fx-CG50 には cmath module が用意されておりません。

そこで、急ごしらえで cmath module を用意しました。 残念ながら、asin() などはまだ、用意できておりませんが、チョット遊ぶなら、この辺りから始めても十分であると思います。 

実行は、プログラムを読み込んだ後、

biom() 

と入力する事で実行されます。

ループ中の数式を変更する事でも、画像が大きく変化するのですが、定数 c を変える事でも、微妙に画像が変化します。
定数 c も複素数ですが、biom(c.real, c.imag) の様に、実部と虚部をカンマで分けて指定する事で与えられます。

残念ながら、cmath module が system binary ではなく、実行速度が大変遅いという哀しい部分はありますが、
じわじわとグラフィクスが描かれる様を眺めるのも、手のひらで動く電卓ならではの愉しみであると思います。

 

追記 on 2024-10-05

過日、K 様にコメント戴き、sqrt() を更新いたしました。
math.copysign() が fx-CG50 には無いため、自家製の copysign() もどき csign() を付け足しましたヨ。これにより、計算速度が向上したという具合には行きませんが、ネタとしては色々と面白かったので、後日、別記したく思います。

謝謝 !


リスト  biom.py

# title : biom.py - Pickovers' Biomorph for fx-CG50
# begin : 2024-09-28 19:33:39

from casioplot import *
import math
import cmath

def  biom(re=0, im=0) :
  width  = 383
  height = 191

  xs=-3.8
  xe= 3.8
  ys=-1.9
  ye= 1.9
 
  c = re - im*1j

  #  Biomorph
  for j in range(height):
    for i in range(width):
      z = (i*(xe-xs)/width +xs) + 1j*(j*(ys-ye)/height+ye)
      #  repeating core
      k = 0
      while abs(z) <= 10 and k < 10:
        z = z*z+c
        #z = cmath.sin(z*z)-c
        k=k+1
      #  
      if abs(z.real) < 10 or abs(z.imag) < 10 :
        set_pixel(int(i), int(j))

      #  show graphix progressively
      show_screen()


リスト  cmath.py

##  title : [WIP] cmath module for fx-CG50
## begin : 2024-09-28 00:38

import math

# copysign() like something ...
def csign(x, y) :
if y == 0.0 :
if str(y) == '-0.0' :
return -abs(x)
else :
return abs(x)
else :
if y < 0 :
return -abs(x)
else :
return abs(x)

#
def phase(x) :
return math.atan2(x.imag, x.real)

##
def exp(x) :
return pow(math.e, x)

##
def ln(x) :
return math.log(abs(x)) + phase(x)*1j

##
def log(x, base=math.e) :
return ln(x) / ln(base)

## thanks K sama ! on 2024-10-04
def sqrt(x) :
# return pow(x, 0.5)
return math.sqrt((abs(z)+z.real)/2) + 1j* csign(math.sqrt((abs(z)-z.real)/2), z.imag)

##
def sin(c) :
return math.sin(c.real)*math.cosh(c.imag) + (math.cos(c.real)*math.sinh(c.imag))*1j

##
def cos(c) :
return math.cos(c.real)*math.cosh(c.imag) - (math.sin(c.real)*math.sinh(c.imag))*1j

##
def tan(c) :
return sin(c) / cos(c)

2024年9月22日日曜日

python電卓を持っていても余り使っておらんので、暇つぶし

 以前に、fx-CG50 を買って、先日、ようやく python が使える様にアップデートした所。
「慣らし運転」ではありませんが、pythonの計算速度を見るつもりで、簡単なループ計算を実行したという次第。

プログラムは以下。
冒頭の文字列部分は「コメント」なので、電卓では無用ノ介。本体のループ部分だけを入れて、実行してみてください。


'''
NHK TV 「3ヶ月で学ぶ数学」より。

問題 : 
3桁の整数 ABC (=100*A+10*B+C) について、
+  ABC * 3/4 = BCA
+  BCA * 3/4 = CAB

の関係を満たす整数ABC は、2つある。全てを求めよ。
(中学校の入試問題より)

答え : 

1. 比例式を準備

+  ABC : BCA = 4 : 3
+  BCA : CAB = 4 : 3

2.  比例式を、最小公倍数にて一本に

+  ABC : BCA = 4 : 3 = 16 :12
+  BCA : CAB = 4 : 3 = 12 : 9

よって、
+  ABC : BCA : CAB = 16 : 12 : 9

3. これより、
   「CAB は 9の倍数」→「CAB の各桁の和は 9 の倍数」→「ABC, BCA の各桁の和は 9 の倍数」

4. また、
   「ABC は 9の倍数 and 16の倍数」→「ABC は 16*9の倍数」

+  16*9 = 144 の倍数
   144, 288, 432, 576, 720, 864

5. 一本化した比例式より、
   A >= B >= C

6.  この条件を満たす 144の倍数は、
    432, 864

という具合であった。

しかし、pythonが動く電卓がある事だし 力技で、解いてみたという次第。
(大人気ない)

結果は、

Hit ! 0
Hit ! 432
Hit ! 864

という具合。
1000回ループながらも、瞬時に答えが得られ、ビックリしてしまいました。

'''

for a in range(10) :
    for b in range(10) :
        for c in range(10) :
            abc = a*100+b*10+c
            bca = 100*b+10*c+a
            cab = c*100+a*10+b
            if abc *3/4 == bca :
                if bca *3/4 == cab :
                    print('Hit !', abc)


2024年8月29日木曜日

プログラム電卓について、色々と考える日々

 前のポストの所で、Sentaro様からのコメントを戴きまして、まだ、色々と考えないとならないことが多いのではありますが、少しだけ思いつきを記しておきたく。

fx-5800Pの改良について

まず、fx-5800Pの機能の一つ「数式記憶機能」について、色々と考えておりました。

fx-5800Pの数式記憶機能、マニュアルをみると、結構気になるものです。
まず、標準で、128の公式があって、これをコピーして編集したり、新規に自前の公式を導入して、ワンタッチで計算できるというものです。
こうした機能、ポケコンの頃から様々用意されておりましたが、fx-5800P秀逸な所は、ギリシャ文字やアルファベットの添字などを使って、表記が柔軟な数式を記入できる所です。一つの到達点に達したかの様なものであります。
しかし、惜しむらくは、この数式記憶機能、そこに囲まれているため、BASICからの利用が出来ない所でしょうか。
BASICでは、別途、プログラムを組めば良いのではありますが、せっかく、ここまで高度な機能があるのなら、縦断して使いたくなります。
まあ、それが難しいというのであれば、この数式記憶でSolverが使えたら、更に面白かったと思うのであります。
128個の数式、というと、結構数が多いように思われますが、1つの計算式について、複数の変量があるため、それらの変量について解いた数式を別個に入れているので、どうしても数式の本数は多くなってしまいます。
数式記憶機能でSolverで使えたら、登録する数式は一本で済みます。これだけで、大分使い勝手がよくなるはず。
欲を言うならば、複数の数式を連立されてSolverで計算できたらいいのでしょうが、そうなると、BASICの仕事、でいいのかも。関数電卓として、数式記憶機能にSolverをつけるだけで、かなり使い勝手が向上しそうです。
ついでに、登録済みの数式についての「副読本」を添付するなどの工夫があれば、学習用途としてもかなり役立ちそうな気がします。

ご一考戴きたく思う次第。

upython電卓の未来像 ?

upython 機能が多くのグラフ電卓に採用される所となりました。

ここで、いくつかの問題があると思われます。

  1. upython が電卓の機能と相互に乗り入れできない
  2.  upython の2進数計算と電卓機能のBCD計算がちがーう
  3.  upython スクリプトの入力、電卓のキーボードでは入力が面倒

1. については、「upython プログラミングの学習用」という位置付けらしく、従来のグラフ電卓機能との分離、やむを得ない所らしい。

例えば、CASIO FX-CG50にて、キーボード real time 入力の検知が出来ないのは、CASIOの方針として「ゲームにうつつを抜かしてはイケナイ」という教育的配慮らしいのですが、これは追々、変化があることを期待したいものです。
また、グラフ電卓部分では、統計処理の所で、t分布などの計算が出来るものの、これらの計算をupython で行うには、gamma function などの特殊関数の機能が必要になりますが、upython 電卓には、こうした関数の計算をするmoduleが提供されておらず、必要と鳴ったら、自前で用意しないとならない。
更に、データを収集して、それをグラフ電卓部分でグラフにしたり、計算処理したりなどですが、upythonにこのデータを持っていったりなどの作業も出来ない、歯がゆさが残ります。

2. については、電卓の計算では、多く1E100までの範囲での計算でしたが、同時に、計算精度も、その範囲内では保証されておりました。電卓側ではBCD (Binary Coded Decimal ;「2進化10進数」)による計算のため、計算精度の保証が出来た様です。
しかし、upython では 実数については2進数のdouble float で計算、もしくは、整数値は多桁整数値の利用が可能で、実数値については、1E320くらいまでは計算でき、計算の範囲は大きく異なります。同時に、2進数floatには、計算についての桁落ちの様な問題もありました。

3. については、電卓というformが根本的に抱える問題でもあり、I/Fの改良による所で、各メーカーは努力を続けております。

こうした問題点を緩和するためには、どうしたらよかんべ ?

1. ですが、upythonのmodule をリッチに追加するしか方策はなさそうです。
例えば、特殊関数のmoudleや、システムよりのmoduleを大量に追加する。
そうして、グラフ電卓部分が不要になる程度に、upython orientedを目指す方向です。

2. については、Sentaro様は「BCDモードをもたせたらいいのではないか」との言葉を寄せていただきました。これが電卓側としては「まっとうな」解決案なのだと思います。
一方で、科学技術計算、特に、sense dataによる科学定数や測定値などには、ある程度の有効桁が存在しており、計算作業の累積で、最後は最も少ない桁数の数値に寄せて、計算精度とする必要があります。そう考えると、double float でも、十分事足りる様でもあります。
幸い、整数の計算については非常に大きな桁数の計算が出来ます。うまくすれば、多桁整数を利用して、手回し計算機の様に桁数の多い計算も可能です。
この際だから、upython電卓としては、BCD計算を止めてしまってもいいのかも知れません。

3. については、電卓のformが抱える根本的な問題でもありますから、極端な話、それこそ、昔のポケコンの様な形状まで検討したら良いのかも知れません。
一方で、高度化する電卓ハードウェアに事寄せて、一つの解決策を提示できるかも知れない。
それは、Bluetooth I/Fの採用です。
Bluetoothを採用する事で、市販のBluetoothキーボードを利用して、upython scriptの入力が軽快に出来る可能性を検討できるのではないか、と。
また、昨今は、Bluetoothで接続できる感熱プリンターなんかもあります。こうしたものを使うと、計算結果やグラフィクスなどを感熱紙に印刷できたりなど、結構夢が広がりますネ !

昔のポケコンやプロ電には、PCに寄せて感熱プリンターなどの周辺機器がありました。
電卓製品になったとしても、こういったものがあったら、それなりに利便があるのではないか、と。


2024年8月11日日曜日

みんなの「憧れ」Mexican Hat

 連日、電卓喫茶 様が、X にて、「Mexican Hat」の作図を複数の電卓で行う作業をポストしておりました。

https://x.com/calculator_cafe/status/1821531729443823776
https://x.com/calculator_cafe/status/1819654869633937426
https://x.com/calculator_cafe/status/1817881332875497881

件のグラフィクス、Mexican Hat というの、寡聞にして知らなかったのですが、確かにとても興味深いものです。
ある世代に、とても「刺さる」ものがあるのですね、この図。昔々の8 bit PC 「MZ-80B」 の広告で、よく見たものです。
Green CRT に(当時としては)精細度の高いグラフィクスで、まさに「コンピューター」による作図、という具合でした。MZ-80B は、当時「高級製品」だったので、ガキの財布で買える様な代物ではありません。憧れの的でした。

同様のグラフィクスが、今では手元の電卓で表示できる、という事を、あらためて示してくれた、電卓喫茶様の一連のポストは、大変嬉しい気持ちでいっぱいになりました。
折角、こうした電卓製品を持っているのであれば、たまにはこうした使い方をしたいものではあります。ハンセイ。

一通りの電卓で作業されているので、今更当方が割って入る隙はなく、外野として、Mexican Hat について少し考えてみたく思います。

Mexican hat は、ある種の関数 z = f(x, y) を、x-y 平面の斜行投影によって 3D作図しているものです。
y 軸方向について「奥」から手前方向に作図することで、陰線処理を実現しているのですが、同時に、この斜行投影という変形によって、作図の面白さが出てくる様でもあります。

左様に、このグラフィクスは3D表示をうまい仕掛けで実現しておりますが、fx-CG50 には、3D グラフ機能がありますネ。
そこで、折角ですから、Mexican Hat の数式を 3D graph で表示してみましょう。ウヒョヒョ !

式は Z = sin(sqrt(X^2+Y^2)) + 0.4*sim(3*sqrt(X^2+Y^2)) の様な表式になります。

X : -4 ... +4, grid=30
Y : -4 ... +4, grid=30

の範囲で描けば、そこそこいい絵が得られる事と思います。
これくらいなら、量販店の店頭に置いてあるデモ機でも十分操作できるので、購入を検討している方は、店頭でお試し頂きたい。

他人様のポストを肴にする程度のことしかできませんで、スマソ。

そういや、Nspire CASのBASICでgraphixが描けないというのは知らんかったですネ。勉強になりました。

あと、藤堂様のpostで、こんなのがありました。

https://x.com/ShunsukeTodo/status/1814566819480674670

「スリーゲイト」でいち早くfx-CG50, Numworks 電卓を販売しておりました、北門 達男氏の書籍紹介です。残念ながらKindle版ですが、一定の需要があるんじゃろうか、Kindle書籍 ?

あと、fx-CG50 のOS アップデータに、Windows 11対応版が出ておりました。

ref. グラフ関数電卓:fx-CG50 OSアップデート
https://support.casio.jp/download.php?cid=004&pid=2126

Windows 11 では「Smart App Control」という仕掛けがあるとかで、コレに対応したアップデータらしい。Windows ユーザーは面倒な事をしないとならない。


2024年8月4日日曜日

fx-CG50 upython で、面白い話をみた

 fx-CG50の upython で、画面の塗りつぶしをすると、ケースによって時間が掛かる場合があるそうです。

電卓喫茶 様の X post 。
https://x.com/calculator_cafe/status/1819663116529275177

色を指定すると極端に時間が掛かるとの事。

確かに、手元のfx-CG50で試したら、極端に時間が掛かっておりました。

しかし、色指定のタプルを変数に入れ、変数で色指定をすると、時間が大きく改善されるようです。

おそらく、ソース埋め込みの定数タプルは、pcode ドライバが毎度interpretするから、時間がかかるのかしらん ?

2024年8月2日金曜日

久しぶりのloginで本人認証を求められてしまった ...

最近、login していなかったので、久しぶりにlogin したら、「本人認証セヨ」だって。

たまたま、予備のメールがあったんで助かったものの、面倒くせえなぁ。

そんな具合ですから、もしかすると「途絶」してしまうかも知れません。


まあ、それも人生。


2024年4月9日火曜日

fx-CG50のOSアプデに期待したい

 以前に、n602💉x5 様 (@n602_NA) が Graph MATH+ のリンクをご紹介されておりました。

ref. https://twitter.com/n602_NA/status/1768053761455612237

n602💉x5 様 @n602_NA の X post

Graph Math+ とか FX-CP400+E とかちょっと欲しくなってしまうのよ
ref. おフランス CASIO の グラフ電卓一覧ページ
https://www.casio-education.fr/produits/?v=gammes

Graph MATH+ と Graph 90+E (fx-CG50 のおフランス版 ? という位置づけで良いのだと思う) が仲良く並んでおります。
今は Graph MATH+ は発売されていない様子ですが、既に「ACHETER」(購入ボタン)があるので、販売が間近と思われます (ガッコ向けには売っておるんか ?) 。90+E と並んでいる所をみると、MATH+, 90+E は併売の可能性があるのではないか ?

一方、90+E の所には「MISE À JOUR」(UPDATING) の印があり、OSのアプデが提供されるらしい。主な内容としては、CALCULメニューの追加となっている。
CALCULメニューでは、おフランスの高校生が履修する80の機能を選択的に使用するための計算機メニューらしい。従来のRUN-Matrix メニューでは330の機能を十全に使用できたようですが、その中から80を選択して、簡便に利用できる様にメニューI/Fを導入した、という感触。
従来のRUN-Matrixメニューはpythonメニューの後ろに配置される、と述べられていて、廃止とはならないらしく、CALCULメニューは、おフランスのEXAMEN対応の機能なのか、と思われますネ。
他には「おフランス語フル対応」みたいな感じで示されております。

Graph MATH+ では、upython にrealtime key detectionの機能が追加されるという話がありましたが、90+E 向けのアプデでも追加される事を期待したいものです。

その「MISE À JOUR」ですが、どうも 2024年4月 ("Disponible depuis le mois d’avril 2023")には提供される感じらしい。

ref. https://www.casio-education.fr/actualites/nouvelle-mise-a-jour-sur-les-graph-35e-ii-et-graph-90e/

日本の fx-CG50 の OS アップデートの提供が、2023年4月23日のことでした。
ほぼ1年という時期だけに、fx-CG50 のOSアップデートも期待したい所ではあります。


2024年4月5日金曜日

もうすぐ新しい日本銀行券が発行になるんだとか

 2024-04-04のTVニュースで、新しい日本銀行券が発行されるのにちなみ、埼玉県で新しい日本銀行券の券面に描かれる人物の足跡を辿る研修を県の職員が行っていたとか。

で、新しい日本銀行券は、2024-07-03に市中に流通するそうで、2024-04-04は、あと90日なんだそうだ。
そこで、fx-CG50で、簡単に計算してみましたヨ。

Finance メニューから行うのがラクですが、説明が面倒です。そこで、BASIC APIとして提供されている Days_Prd() を使いますと、こんな具合。Run-Matrix メニューで実行できます。

Days_Prd(04,04,2024,07,03,2024)
90

同様の機能は、他の高機能電卓でも利用できるものがあります。

簡単な操作で答が得られるのですが、機能が増えてくると、所望の機能を探し出すのも一苦労ではあります。
スマートフォン一辺倒ちうのもワカランでもありません。Hey Siri, OK Google ...

他方、今時はリアル紙幣、硬貨も結構なれど、スマートフォン決済が推奨されつつあるらしい。
新・日本銀行券には、様々な偽造防止の機能を盛り付けているそうですが、この日本銀行券、最後のリアル紙幣になったりしないのか ? などと余計な心配をする、凶この頃ではあります。

マイッタなァ。

2024年3月11日月曜日

〽 誠に遺憾に存じます ...

 やる事がないので、他人のつぶやきを肴に。

ref. https://twitter.com/hal_note/status/1766472321592942614

 飲酒漢 @hal_note
【悲報】Boost Your Curiosityされfx-CG50購入。「%」の入力さえできず詰む。

そういや、%キー、久しく使っておりませんでした。
当方の場合、「÷ 100」で計算しているので使った事がなかったのですが、言われてみれば電卓ですから、%キーの有効活用はあっても不思議ではありませんネ。
fx-CG50では、optionキーから使うん ? 機能が増えてくると、キーを探し出す手間が掛かるという、高機能電卓に遍在する問題ではあります。

ref. https://twitter.com/teteten/status/1766685105937056042
【bot】てててn ™ @teteten
iPhone/iPadと同様、NUMWORKSから公式アプリ出てるので、昔のポケコンに思い入れのない新しい人&TI/HPなんかの高機能関数電卓系が好きな人はこっちでイイと思う。
なかなか含蓄のあるご意見であります。
当方は「古い人間」で、ポケコンとかから来ているのですが、今はスマートフォン全盛のご時世であり「昔のポケコンに思い入れのない新しい人&TI/HPなんかの高機能関数電卓系が好きな人」って、どれくらいいるのかが気になる所でありますネ。

ref. https://twitter.com/Tossy99077342/status/1763891787989668093

Tossy @Tossy99077342
CASIOのfx-5800Pやfx-CG50が欲しいが
製品ライフサイクル的にもう終わりだろうし
後継機種を待つか

これ、当方も少し気になっておりました。
そこで、検索しておりましたら、最新情報がやす親分の所で、様々でておりますのヨ。

ref. fx-JP900 と fx-5800P 後継機への期待 - e-Gadget - プログラム関数電卓
https://egadget.blog.fc2.com/?no=214

ここのcomment 欄にて、CalcLoverHK 様が能くポストされておりますが、おフランスでは、Graph Light , Graph Math+ が計画されているらしい。2024年度中の発売と目されております。

問題は、世界的に展開されるのか ? という点です。
TI-84 plus CE python ed. が、最初おフランスで発表され、遅れてから世界展開という経緯がありました。
CASIOも同様の展開となるのかが、今後の注目となりそうです。

fx-CG50 のsuccessor としては Graph Math+ が相当するそうですが、今の所、つぎの噂が出ております。

  • メニュー項目が整理されており、Appsが一部削除されている
  • これに伴い、CASIO BASIC が見当たらない
  • upython の機能が拡充され、editor が見やすくなって、realtime key scan としての getkey() 追加

があります。実際の登場は未だ先の事であり、世界展開の行方も気になる所であります。


2024年2月13日火曜日

令和「ポケコン」の夢

 最近は、電卓ですらボタンを押さずの日々で、何か、もう少しやらんとアカンなぁ、と思うこと頻りなのであります。

電卓で計算のネタをもう少し考えないとならんのですが、同時に、電卓やポケコンに対する「ロマン」を思い返す事ばかりが多くなって来ました。ポンコツの繰り言であります。

そういや昔は、Sharpのポケコン・PC-1250/1251 が大変眩しかったなぁ、などと思い返します。当時は、CASIO PB-100を購入し、何処へでも持っていったものでした。
一方で、級友の中には、Sharp PC-1250/1251を持っている人がいたりなどで、この界隈では密かなPB-100 と PC-1251 の領土争いのような事が起こっていた。
その後、サイズ的に近しかった、HP15Cをニコニコしながら購入し、ポツポツとボタンを押して、複素数の計算などを勉強したのでした。

なかなか思い入れのある所なので、このあたりの話を色々と書くことは容易いのですが、本題からそれそうなので、其の内にでもと思います。

で、ポケコンやプロ電で、キーボード部分の大きさはあまり小さく出来ない、それに見合うLCDは1行程度の表示しかなかったのですが、このあたりの制約で、PC-1250/1251 はそれこそ「ワイシャツのポケットに忍ばせる」という感じでウケたのだろうか、などと。

時代が下ると、HPLXシリーズが登場し、当時はいつでも身につけている事から「電脳パンツ」などと言葉まで登場したそうですが、この辺りから、スマートフォンの登場により、国民聡電脳武装、の世の中になりつつあります。

こうした、ある意味ゲンナリするハナシは置いておき、今日では、過去の「ポケコン」に相当するものとして、こんなモノがあるといいます。

M5Stack Cardputerキット(M5StampS3付属)
https://www.switch-science.com/products/9277

小さいとはいえ、カラー液晶を用意したデザインなど、なかなか興味深い。
プロセッサは無線機能を持っている32bitのものらしく、microSDや各種センサーの利用も可能とかで、ポケコンに抱いていた「夢」が、これ一つで済んでしまうほど強力です。。
しかも、pythonで動くらしいのですが、残念ながら、pythonのプログラムを本体で編集できるのかはわかりません。

以前、マイクロコントローラーに液晶、簡単なTact SWをつけて動作する、手作りポケコン、のようなモノを構想したのですが、そこませずとも、安価にモノが入手できてしまう。時代の進歩には脱帽します。

しかしながら、残念な事に、本体サイズがカードサイズのfootprint にこだわったためか、たいへん小さそうです。
快適入力は難しそうですが、令和の時代の学生に向けた製品ですから、この大きさでも喜々として使うのかも知れません。

同時に危機感があるのは、こうした製品が日本で出てこない所でもあります。
それは、日本のユーザーの多くはスマートフォンで十分満足しているからなのでしょう。

「これ以上はどうなるか、子供でもわかるだろう」という田所博士(映画「日本沈没」)のセリフを思わせるものがあります。