2025年10月30日木曜日

生産終了の fx-CG50 に アプデが登場しました

 既に fx-CG100 が発売、fx-CG50 は生産終了となっておりますが、珍しい事に、fx-CG50 のアプデが登場しておりました。

ref. fx-CG50 アプデ
https://support.casio.jp/download.php?cid=004&pid=2126

- バージョン履歴
(2025年10月29日)  fx-CG50 OSアップデーター(⇒Version 3.81)及び関連アプリソフトの公開 (Windows/Mac OS)

- バージョンアップ内容
  (Ver3.80.XX1X → Ver3.81)
    軽微な修正

との事で、内部的な不具合の修正、という具合のようです。

これで casioplot.getkey() とかが追加になれば興味深いのですが、マニュアルの更新はなさそうですから、機能面は変更なし、として差し支えなさそう。
他方で、OS に lock を掛ける、というイヤな更新もあるかも知れません。

確か、XCAS は、OS 3.7 では問題なしだったものの、3.8 になって、導入が困難になったそうで、3.7 へ roll back する必要があると記されておりました。
今般の 3.81 は、OS の downgrade を阻止する、そんなイヤなメカが入っていたりしないか、などと思う所。
(当方、未だに 3.40 だったりします)
 
で、XCAS, PythonExtra を使っていない皆さん、おそらく最後のアプデが提供されましたので、是非ともご利用戴きたく ... !

突然のアプデ襲来に驚いてしまい、出だしはこんな事で始めましたが、先日から、チョット手遊びで、こんなコードを作っておりました。

四角形の中に少し傾けた線を引き、それを繰り返していくと、規則性のある図柄が現れる、というものです。

# recsq.py 2025-10-27
from math import *
#from casioplot import *
from u import *

a=(86,191)
b=(86,0)
c=(277,0)
d=(277,191)

def sqlin(a,b,c,d):  
  line(int(a[0]),int(a[1]),int(b[0]),int(b[1]))
  line(int(b[0]),int(b[1]),int(c[0]),int(c[1]))
  line(int(c[0]),int(c[1]),int(d[0]),int(d[1]))
  line(int(d[0]),int(d[1]),int(a[0]),int(a[1]))

def tr(r,p,q):
  return (p[0]*(1-r)+q[0]*r,p[1]*(1-r)+q[1]*r)

def recsq(n,r,a,b,c,d):
  for i in range(n):
    sqlin(a,b,c,d)
    b=tr(r,b,c)
    c=tr(r,c,d)
    d=tr(r,d,a)
    a=tr(r,a,b)

recsq(60,0.05,a,b,c,d)
但し、やす親分作成の線引き module 「u.py」を使用しております。折角作っていただいたので、有り難く使わせて戴いております。
親分、多謝であります ! 

ref. Casio Python - グラフィックス出力関数の追加 - e-Gadget - プログラム関数電卓
https://egadget.blog.fc2.com/blog-entry-739.html

このコード、元々は再起処理っぽい感じで書いておりました。
def recsq(n,r,a,b,c,d):
  if n<=0:
    return
  sqlin(a,b,c,d)
  b=tr(r,b,c)
  c=tr(r,c,d)
  d=tr(r,d,a)
  a=tr(r,a,b)
  recsq(n-1,r,a,b,c,d)
しかし、繰り返しの回数が 50 になると stack overflow になってしまいました。なんだよ、オイ !
upython では、バルクデータを扱う必要もあって、heap oriented らしく、Stack は少し控えめに配分するのだと思う所です。
で、作業中のコード、入力している最中、「無理に recursive にする必要はなさそうだナ」と、単純な繰り返しにした所、stack 消費がないため 50 を越えて 100 でも問題なく動くと判明しました。

先日来、ダイソーで買ってきた NiMH 電池を使っていたのですが、今日になって、Low Batt replace が出る様になったものの、一度電源をサスペンドすると、一時的に復帰する事をいい事に、使い続けておりました。
流石にこのままではキツそうと、電池交換のため、編集中のコードを保存しておこうとすると、Low Batt 警告が出るのであります。Flash memory は書き込みに電力が要るのです。そこで、一旦サスペンドで電圧回復を図り、保存しなおすという際どい操作で、切り抜けたという具合。(良い子はマネしちゃダメよ)

昔のポケコンでは、RAM に BASIC プログラムを置いておりました。電池が切れると、内容をすっかり忘れてしまうのですが、それを思うと、隔世の感、ではあります。

2025年10月26日日曜日

fx-CG50 : Julia 集合のグラフィクス

 理屈はさておいて、Julia 集合のグラフィクスというのが、Mandelbrot set graphics のコードをいじるだけで作成できるとの話で、作業してみました。


from math import *
from casioplot import *

clear_screen()

def julia(deg):
 tbl=[ (0,0,0),(255,0,0),(0,255,0),(0,0,255),(255,255,0),(255,0,255),(0,255,255),(255,255,255) ]
 n=len(tbl)*deg
 xmin = -3.84/2
 xmax = 3.84/2
 ymin = -1.92/2
 ymax = 1.92/2
 dx = (xmax-xmin)/384
 dy = (ymax-ymin)/192
 for yp in range(192):
  for xp in range(384):
   z = xmin+(xp*dx) + (ymax-(yp*dy))*1j
   c = -0.8 + 0.156j
   cnt = 0
   while (abs(z) <= 4.0 ) and ( cnt < n ):
    z = z*z+c
    cnt = cnt+1
   rgb = int(cnt*255/n)
   #col = (int(rgb),int(rgb*0.75),int(rgb*0.25))
   col = tbl[cnt%8]
   set_pixel(xp,yp,col)
  show_screen()

julia(6)
末尾の julia(6) で「計算深度」を指定しております。
この計算深度は、反復回数を指定するもので、カラーテーブルの大きさの倍数となっていて、カラーテーブルの大きさが 8 なので、最大で 6*8 = 48 回の計算繰り返しを行います。

どうして、こんな事をしているのか、と申しますと、計算回数の上限を上げる事で、色々と画像が変化してくるのですネ。
fx-CG50 のスクショを取る方法がわからないので、パソコで擬似的に行ったのが、つぎの画面であります。

中心部から黒の領域がウネウネと出ておりますが、回数を増やすと、黒の部分にも細かい色が現れるのです。
しかし、fx-CG50 ではチョット荷が重いので、上限を 6*8 にしているという次第です。

さて、このコードをやっていて、隘路に入ってしまったので、メモを書いておきます。
当初、ファイル名を jul-1.py としていたのですが、実行すると、「Syntax error」が出るのですネ。色々とコードを手直ししてみましたが、どうにも見通しがつかない。
結局、実行時に 「from jul-1.py import * 」と出ていて、ファイル名にあるハイホンを「コレって、引き算じゃね ? エラーじゃんかよ !」となっていたらしい。
そういや、CG50 本体で python コードを作成するとき、ファイル名にハイホンは入力できんのですね。道理で。

... なんとも情けないオチでありました。スマソ。

 

 

2025年10月11日土曜日

電卓の話題で、こんな話を見た

 確か、以前にもあったと思うけれども、6÷2(1+2) の答えが色々と悩ましいとの事。

ref. 6÷2(1+2) - Wikipedeia
https://ja.wikipedia.org/wiki/6%C3%B72(1%2B2)

電卓で計算しても処理方式が様々で、答えが 9 であったり 1 であったりするのだそうです。

まずは、CASIO fx-CG50 でやってみましたヨ。
6÷2(1+2) を 6÷(2(1+2)) と自動で書き換え、1 を返しますネ。教育用途という所で、配慮されているようであります。

続いて、fx-CG50 の upython ですが、プログラム言語なので、こうなりました。

>>>6/2(1+2)
TypeError : 'int' object is not callable
エラーです。なるほど。2は関数として呼び出せない、という具合です。

HP Prime の simulator でもやってみました。


"6/" まで入力した所、自動で分数表記になり、以降の 2(1+2) を入力すると 2(1+2) の分子の扱いとなって、結果は 1 になりました。これはこれでウマイ回避法です。

HP電卓で広く使われていた RPN でやるならば、こんな具合になりましょうか ?

6 [ENTER] 2 [ENTER] 1 [ENTER] 2 [+] [*] [/]  → 1 を返します
また、6÷2*(1+2) として計算するには、

6 [ENTER] 2 [/] 1 [ENTER] 2 [+] [*]  → 9 を返します

括弧で括った項と数値の掛け算で、掛け算記号が省略されてしまう事から、演算子の優先順位に混乱が生じるため、こんな具合になるのでしょう。

Wikipedia の記述によると「この式自体の記述がオカシイ」とする方式もあるそうで、式記述について、曖昧にならない様な指導が期待される所でもありますが、学校教育の現場では、今暫く、この問題に悩まされることになりそうです。

【おまけ】
fx-CG50 XCAS で試したら、

6/2(1+2)
Warning : using implicit multiplication for (2)(1+2)
                  1
でした。暗黙の掛け算処理を適用、という具合です。

2025年9月14日日曜日

HP50G がイカれてしまった ...

 永らく使っていた HP50Gのキーボード。遂に入力できないキーが出てしまい、泣く泣く使用を断念する事にしました。エーン ...
接点復活剤をキーの隙間から吹き付けると回復するらしい、という話をみたので試してみたのですが、好転せずショボーンなのであります。

その為もあって、目下、手遊びのお供としては、fx-CG50 を使っているばかりなので、そろそろ HP電卓についての話題も止めざるを得ないのであります。ウーン。

そうした折、以下の post を見ました。

bockring 様 ( @bockringElec ) X post

圧倒的にHP Prime
fx-CG50持ってるし

CASIOくんのほうが3Dグラフは多機能だけど、全体的にPrimeが上かな
まぁレビュー記事でも読んでくれぃ

https://qiita.com/bockring/items/53b4b887d8885be4da50
https://x.com/bockringElec/status/1966761390204768714

bockring 様は、以前にお知らせを戴いた方だと思います。HP Prime fimware の翻訳、更新などに貢献されて居られる様で、誠に頭の下がる思いであります。

Sentaro 様も、HP Prime G2 は電卓の中では"爆速"の部類に入る様子のお知らせを戴きまして、正直、いじってみたい気もあるのです。
しかし、電卓とPCをリンクする際、Windows 版 Linker Apps が要るのが、正直クルシイ。なんと言っても、未だに Windows 持っておらんのですヨ、ハイ。

そりゃ、PCといえば  Windows と言う位ですから、一般常識としては抑えておくのが当然ではあります。
所が、今まで Windows を使わず過ごしてきた身としては、今から電卓の為に Windows PC を用意するというのは、懐にも堪えるものがあるのでありまする。
今般、近所の家電量販店に行ってみましたら、今時の ノートPC, 15万円が最低線の様な印象を受けました。代わりに、RAM 16GB とか。ゲゲゲのゲーッ ! と思いましたが、最近では生成AIを使うとかで、コレくらいの RAM は当たり前、という風潮。まぁ、ついていけまへんなぁ、コレは。
生成AIという新しい「活用法」が提示され、同時に Win 10のサポート終了とあって、Windows (11) PC もより売上を伸ばす事になるのでしょう。しかしながら、価格が低廉になるには、今暫くの時間を要する様でもあります。

HP Primeは、上記の bockring 様など、様々な方が翻訳やBug Fix に貢献されて居られる様で、今後の発展も気になるのですが、如何せん、Windows PC を持っていないと、ついて行けないという哀しみがあるのですネ。

Windows PC を持っていないと、fx-CG100 も「ゴニョゴニョ」出来ない、という意味では通じる所がありますから、目下の所、「生産完了品」fx-CG50 でポツポツと遊んでいる日々であり。

そんな具合ですから、HP 電卓のネタは、どうにも触れる機会が減ってしまいました、申し訳ない次第。

HP 電卓の様々な情報がアップされる MoHPC も頻繁にCrackers Attack を受けているらしく、時折、Members only になったりします。そんな具合でもあり、HP電卓の情報を漁ろうにも制約が ... 

マイッタなぁ。


2025年9月7日日曜日

fx-CG50 と fx-CG100 では、何かが違うのかな ? (2)

金欠で fx-CG50 をポツポツと使って物欲という渇愛を癒やす日々、fx-CG100 を購入の皆様、様々御活用されて居られます様で、ご健勝、お慶び申し上げます。(手抜きで、前回のネタと同じ口上)

 Tossy (@Tossy99077342) 様 post より

CASIOのfx-CG100のPython機能のcasioplotモジュールでランダムな色で画面を埋め尽くすサンプル。
何故か描画が途中で遅くなったり速くなったりする。
https://x.com/Tossy99077342/status/1962097774184603800

との事でしたが、その後、コードを改変して試してみた次第。

from casioplot import *
from random import *

def draw_box(i, j, c) :
c = (randint(0,255), randint(0,255), randint(0,255))
  for y in range(16) :
    for x in range(16) :
      set_pixel(i*16+x, j*16+y, c)

while True : 
  i = randint(0,24) :
  j = randint(0,12) :
  c = (randint(0,255), randint(0,255), randint(0,255))
  draw_box(i, j, c)
  show_screen()


実行してみると、カラフルな画素で画面を敷き詰めるのは同じなのですが、前回と異なり、

  • "夢幻"ループ (CASIO ポケコンのnewsletterの題名 ) で、ランダムな位置にタイルを敷き詰めます

四角を描く所でも色コード指定をしているので、色コードタプルをバシバシ生成し、heapを食い尽くすのではなかろうか、と思ったのですが、少しの時間では、目立った変化は認められませんでした。

ウーン ?

未だ、ナゾーは深まるばかりであります。

一方、fx-CG100 がヒソーリと発売された中、電卓ページのトップバナー写真には、相変わらず fx-CG50 (生産終了品) が表示されております。

しかしながら、fx-CG50 のOSアプデは、2025-08-09 のアップデータにて終了という寂しい状態。

もう、fx-CG50 のアプデは提供されない様子でありますが、3.8 に更新すると「XCAS が動かない」という話で、当方は未だに 3.4 のママなんですヨ。

幸い、OSのdowngrade についての知見もあるそうで、3.7 にすると、XCAS が動くとか。

 気になる方は、調査されたし。以上 !

 

2025年9月6日土曜日

方程式 solver 試論

 と、格好つけてみましたけれども、大袈裟な物言いの割には、小ネタであったりします。

以前、fx-5800P に、内蔵公式集が 128本くらい入っていると知り、更に、ユーザーによる公式も登録可能、との事で、こうした公式集をダラリと使っていたら、そうした公式に少しは理解が及ぶ所で、初学者の助けになるんじゃないのか、などとボンヤリ思う所でした。

しかし、公式集をみると、例えば、multiple equation solver の様なメカがないため、公式内の変数に対して、式を変形したものが重複して登録されております。

理想を言うならば、公式を一本、入れておいて、Solver が指定した変数に対して数値解を求めてくれる、のが欲しいなぁ、というヘタレぶり。

fx-5800P の様な、公式内蔵のプロ電は、目下、successor が存在せず、というのが実に押井、と思う次第。

fx-CG50 には、Solver Appsがあり、方程式を登録する事で、所望の変数について数値解を計算する事は可能であります。
そこで、Solver Appsに、内蔵公式 selector の様なメカがあると便利かなァ、と思うのありますが、fx-CG50にはもちろんの事、fx-CG100 にも、そうした便利メカは用意されておりません。そりゃそうだ、学校教育向けでしたから、内蔵公式集の様な「あんちょこ」(「安直」の訛りが語源だそうです)は無いのが当たり前でありました。

斯様に、プロ電が「プロツール」の座位から「学校教育向け」に移って行く今日、プロツールの動きとしては、fx-FD10 が最後の輝きだったのか、などと思う所であります。
fx-FD10 が death-continue に至った今日、fx-5800Pが、プロツールの孤塁を守っている、という認識で良いのかも知れません。

プロツールのsuccessor 登場、という局面は期待できない今日、代替製品として、fx-CG50/fx-CG100 の upython に活路を見出すという試みは「密かなる需要、有用性が在りはしまいか ? 」という淡い期待から思いつくのであります。
幸いにして、fx-CG50/CG100 には、スクリプトを沢山抱えるだけのストレージ容量があります。

内蔵公式集として導入されていなくとも、ユーザーが必要な公式を登録、メニュー形式なりで計算式を選択して計算するといった作業を upython scriptとして記録しておけば、十分に活用できそうです。
実際、fx-5800Pに土木計算ライブラリを書き込んだものを、「専用機」として流通している商売があるとの話。

で、ここまでが長すぎる"前フリ"でありました。以降が本題。

fx-CG50/CG100 の Solver Apps, 結構便利なのですが、「方程式セレクタの様なメカが欲しい」という点もさることながら、f(x)=0 の形式の方程式しか解けない、そこが"押井"かなぁ ... と。

で、本編では、upython の計算能を用いて、2元連立方程式の数値解 Solver を模索しようという試みであります。

2方程式の数値解を求めるには、Newton-Rafson 法が利用できるそうで、ここでは簡易版のスクリプトを提示し、読者の皆様 (そんなに居らんのよなァ)に一考願おうという次第です。

つぎのコード「slv2eq.py」を用意します。

```

# title : slv2eq.py - Newton-Rafson Numeric solver
# begin : 2025-08-28 23:25:08 

# mat[2][3]  for equation difference matrix
mat = [ [0 for i in range(3)]  for i in range(2) ]
eps = 1e-9    # machine epsilon

#  pseudo-diff df/dx
def  dfx(f, x, y) :
  #print('debug ... eps ', eps)
  return  (f(x+eps, y)-f(x, y))/eps

#  pseudo-diff df/dy
def  dfy(f, x, y) :
  #print('debug ... eps ', eps)
  return  (f(x, y+eps)-f(x, y))/eps

#  newton-rafson solver
def solvre(f, g, x0, y0) :
  x, y = x0, y0
  for i in range(20) :
    print('.', end='')
    #report(x, y)
    #  
    mat[0][0] =  dfx(f, x, y)
    mat[0][1] =  dfy(f, x, y)
    mat[0][2] =  -f(x, y)
    # 
    mat[1][0] =  dfx(g, x, y)
    mat[1][1] =  dfy(g, x, y)
    mat[1][2] =  -g(x, y)
    # matrix solvre
    d = mat[0][0]*mat[1][1] - mat[0][1]*mat[1][0]
    if d == 0 : 
      d = eps
    tx = ( mat[1][1]*mat[0][2]-mat[0][1]*mat[1][2])/d
    ty = (-mat[1][0]*mat[0][2]+mat[0][0]*mat[1][2])/d
    mat[0][2] = tx
    mat[1][2] = ty

    x += mat[0][2]
    y += mat[1][2]

  print(' END')

  print('x=',x)
  print('y=',y)

  print('eq1()=',f(x, y))
  print('eq2()=',g(x, y))

  return x, y

def report(x, y) :
    print('x = {0:.6f}  '.format(x), end='')
    print('y = {0:.6f}  '.format(y))

def inpnum(str):
  lin=input(str).split(',')
  if len(lin)>1:
    num=complex(float(lin[0]),float(lin[1]))
  else:
    num=float(lin[0])
  return num
```

これを import すると、つぎの2つの関数が利用できます。

  • slv2eq.inpnum()
    数値入力サービス
  • slv2eq.solvre()
    簡易 Newton-Rafson 数値 Solver 

で、使い方としては、

  • 3*x+2*y-3 = 0
  • 3*x-2*y-8 = 0 

の様な方程式を解くため、つぎのスクリプトを実行します。

```

from slv2eq import *

#  equation #1
def f(x, y) :
  return 3*x+2*y-3

#  equation #2
def g(x, y) :
  return 3*x-2*y-8

#  main part
while True :
  x=inpnum('x0= ')
  y=inpnum('y0= ')
  x, y = solvre(f, g, x,y)

```
のようにします。

  1. def で方程式 = 0 の形式で関数定義をして、
  2. slv2eq.inpnum() で 数値解探索を始める初期値入力、
  3. slv2eq.solvre(f, g, x, y) で Newton-Rafson を動かす 

のですが、2, 3 の部分がループになっているのは、初期値の入力が簡単に行え、何度もリトライする為であります。

出力例
```

x0= 1
y0= 1
.................... END
x= 1.833333333333334
y= -1.25
eq1()= 0.0
eq2()= 0.0

```
解の探索を始める初期値 x0,y0 を入力すると、20回ほどの計算の後、数値解を吐き出します。
再び、初期値入力になりますが、この例題では、他に答えがないので、[AC」キーを押して終了します。お疲れ様。

上記の例は、線形2元連立方程式のため、fx-CG50 の Solver Appsでも解けるものでしたが、このスクリプトの威力は、つぎの様な式でも数値解を得られる所です。

  • x*x+9 = 0
  • x-y*y+4*y+4 = 0 

この方程式の場合、数値解が複素数になってしまうので、素直に解けません。
所が、Newton-Rafson 法では、探索を開始する初期値に複素数を用いると、解けてしまうのですネ。コリャーエエ !!

slv2eq.inpnum() では、実数と複素数の入力に対応しております。
複素数の入力をするには、実部のあと「,」を入れ、続けて虚部を入力します。
例えば、初期値に 1-2j を入力するには、1,-2 という入力をします。

実行例
```

x0= 1
y0= 1
.................... END
x= -1.5216944570145454
y= -0.6115683445992836
eq1()= 11.31555402050879
eq2()= -0.3419836755275885
x0= 1,1
y0= 1
.................... END
x= 3j
y= (-0.8761088075138545-0.5215379877427583j)
eq1()= 0j
eq2()= 0j

```

他にも、色々な式が計算できます。しかし、数値計算で、内部で「数値差分」を使うなどしている所から、ピッタリの数値を得られるとは限りません。飽くまでも、正確な値に"にじり寄る"手段として、活用して戴けると幸いです。

何だか、小ネタと書いた割に、長くなってしまい、申し訳ない。

 

【お・ま・け】

HP50G Users guide の Page 7-5 (242) に、Manning 方程式の計算例があります。
これを slv2eq.py の応用例として、書いてみました。コードを示しておきます。

```

# 
# title : manning.py
# begin : 2024-05-13 14:19:41 , 2022-05-11 16:17 
# note  : manning formulae equation solving test.
#       : ex.  cu/n*(y*(b+m*y))**(5/3)/(b+2*y*sqrt(m*m+1))**(2/3)*sqrt(s0) - q  = 0
#       :      y+(q/(y*(b+m*y)))**2/(2*gv) - h0 = 0
#       : ans. q = 20.6614376636849357
#       :      y = 4.9936961327530183
#  

import  math
import  slv2eq

##  variables

#  constants
h0 =  5.0      # represents the energy head (m, or ft) available for a flow at the entrance to a channel
b  =  1.5      # bottom width (m or ft) of channel
m  =  1.0      # the side slope (1V:mH) of the cross section.
n  =  0.012    # Manning   s coefficient, a measure of the channel surface roughness (e.g., for concrete, n = 0.012)
s0 =  0.00001  # slope of the channel bed expressed as a decimal fraction
gv =  32.2     # gravitic accel coefficient
cu =  1.486    # constant for UNIT convinient (ft, yards)

#  equation #1
def  f(q, y) :
  return cu/n * (y*(b+m*y))**(5/3)/(b+2*y*math.sqrt(m*m+1))**(2/3) * math.sqrt(s0) - q 

#  equation #2
def  g(q, y) :
  return y + (q/(y*(b+m*y)))**2/(2*gv) - h0

#  main part

x, y = slv2eq.solvre(f, g, 2, 1)

```


2025年8月31日日曜日

fx-CG50 と fx-CG100 では、何かが違うのかな ?

 金欠で fx-CG50 をポツポツと使って物欲という渇愛を癒やす日々、fx-CG100 を購入の皆様、様々御活用されて居られます様で、ご健勝、お慶び申し上げます。

 Tossy (@Tossy99077342) 様 post より

CASIOのfx-CG100のPython機能のcasioplotモジュールでランダムな色で画面を埋め尽くすサンプル。
何故か描画が途中で遅くなったり速くなったりする。
https://x.com/Tossy99077342/status/1962097774184603800

との事で、簡単なコードを書いてみましたヨ。

from casioplot import *
from random import *

def draw_box(i, j, c) :
  for y in range(16) :
    for x in range(16) :
      set_pixel(i*16+x, j*16+y, c)

for j in range(12) :
  for i in range(24) :
    c = (randint(0,255), randint(0,255), randint(0,255))
    draw_box(i, j, c)
    show_screen()


実行してみると、カラフルな画素で画面を敷き詰める筈。

 fx-CG50 で試したのですが、当方、ジジィになってしまい反射速度も鈍っているらしく、「何故か描画が途中で遅くなったり速くなったりする。」事象を確認するには至らず。

 あるいは、fx-CG100 で実行すると、重大な「何か」で、実行速度に"揺らぎ"が生じたりするものなのかしらん ?

取り敢えず、そんな具合です。お試し戴きましたら、ご報告を戴けると幸いです。


追記 on 2025-09-01

  藤堂俊介 (@ShunsukeTodo) 様のpost がありました。

fx-CG100 虚数の平方根ができるようになったのか。
#CASIO
#関数電卓
https://x.com/ShunsukeTodo/status/1962465220393328693
 

 以前、藤堂様は fx-CG50 の検討をされておられた様ですが、今般、CG100 登場で興味を惹かれたのかも ?

し・か・し ! fx-CG50 でも 複素数の計算はデキルんですヨ ! そりゃ、足りない部分はあるのは否めませんけれども。

 √i, i^i だったら、計算してくれますゼ。Setupでcomplex mode を a+ib にすればヨロシイのです。