2025年12月31日水曜日

2026 наилучшие пожелания в новом году !

祝大家新年快乐 !


と、行政を刺激する様な中国語での挨拶であります。まあ、2025年の内からスカな事を書き綴っているので、御容赦戴きたく。

電卓と言えども、今時のスマートフォンに導入されている電卓 Apps で、高度な計算が出来る事は、皆様ご存知の通りであります。

関数電卓でも、こうした計算は十分こなす所であり、スマートフォンの電卓も関数電卓としての機能を具備していて、「有効桁数切り落とし問題」の一部は解決されている様でありますが、
翻って、フツーの電卓の計算における有効桁切り落としは、社会通念として厳然と存在するかの様ではあります。

電卓にも採用されている upython でも、内部の double float 計算では有効桁切り落としがあり、0.1×1 != 1.0 でありました。

sum = 0
for i in range(10) : 
  sum += 0,1
print(sum-1)
0.1 の2進数表現が無限小数となり、コレを途中で切り捨てているのが計算誤差の原因との事。
 
スマートフォン Apps では、このあたりまでシッカリ考えられているので、万人が所望する答え、利便をスパッと返して呉れる様でもあります。

スマートフォンの電卓Appsについては、他にも色々と考えさせられる所があります。
例えば、「いわゆる計算式の演算子の順番をうまく処理してくれる」という所もあります。
例えば 23+4*8 = という計算でありますネ。いわゆる事務用の電卓で計算すると、216になってしまう計算でありますが、四則計算の手順通りならば、55 になります。
四則演算では、加減算よりも乗除算の方が優先される、というアレ。関数電卓では、内部にスタックを抱えていて加減乗除の優先度を考えた計算式の通りに計算できるのでありますが、普通の電卓では、其処までのメカは持っていないのでありました。
代わりに、事務用の電卓ではメモリー機能を使って、数値の集計をすばやく出来るように工夫されておりますが、詳細はここで触れません。

HP 電卓の RPN では、ユーザーがスタックを明示的に操作する事で計算プロセスを外部化し、計算ミスをしにくくなるという利便もありましたが、同時に計算のためのスタックを少なくする事からメモリ資源の節約にもつながるという、開発側にとっての利便もあったという見方ができそうですネ。電卓で扱うような計算式の多くは二項演算でしたから、二項演算の二項演算として、スタックを4段用意すれば、かなり広い計算に対応できたのだと。

他にも、スマートフォン電卓Appsでは、関数電卓機能を具備する事で「大抵の関数電卓より大きい階乗の計算もこなす」のであります。
19515! の計算が出来ると知り、ちょっとした驚きではあります。
ココまでは、関数電卓でもなかなか計算出来ません。気が触れている具合でしょうか。「気触れ大サーカス」

ちなみに、関数電卓でも階乗計算機能を持っておりますが、計算内容が微妙に差があったり、など。
階乗の計算は、整数を1から始めて順次掛け合わせていくのですが、数学の知見とは驚くものがあり、Γ(ガンマ)関数による表現という拡張が為されているそうで、x! = Γ(x-1) とか。そこで、海外の電卓では、x! で Γ(x-1) の値を返すという風にしておりますネ。

Γ関数では、Γ(5.5) という計算ができますが、これを 6.5! として計算出来るといいます。
Γ価数の様な「特殊関数」が必要な場面は、それほど多くなさそうですが、最近のグラフ電卓では、t分布などの計算をスパッとこなしてくれるそうで、其の計算の背景では、Γ関数の計算などが入り用になっていて、内部に用意されているらしい。

余計なお世話ながら、python を使ってやれば、整数の階乗計算の「概数」(およその値)を計算する事はできそうです。
次の様なスクリプトを用意しておきます。

def ifac(n):
  r=0
  for i in range(n):
    r=r+math.log(i+1,10)
  print(pow(10,r-math.floor(r)),"e",int(r))
  return r

ifac(19515)

このまま実行すると 19515! の値を出力します。

Androidスマートフォンの電卓Appsでは、コレ以上の値は「計算できません」でした。
しかし、このスクリプトは概数を計算するだけなので、20000! といった馬鹿げた値も計算可能。
時間さえ掛ければ、もっと大きな値の計算が出来るはずですが、まあ、ココらへんで止めておくのが賢明ではあります。

(余談ですが、最初、log() の所でlog10() を使った所、Python Extra には log10() が無かった、と知り、変更した次第。log() で底を指定できるので、log10() は不要、という割り切りでありましょうか )

今時のスマートフォンは 64bit processor, OS であり、PCでの作業まで代替できるほど、とも言われております。
コンピュータでは CAS が稼働し、数式の計算ですら機械がハンドル可能となっております。

更に生成AIの援用で、実に様々な知見に対する解を即座に得られる利便があります。Cost, Time performance 向上の具として、実に心強いものではありますが、同時に、下手をすると「労働強化」の具にされている様な不審を抱いてしまうのは「生成AIとは無縁な生き方をしているから」ではありましょうか。

2025年は、CASIO fx-CG100 が発売されました。
fx-CG100 は、従来の BASIC 言語を排し、upython 一本に絞った恰好ながらも、同時に 外部 Apps が出来ない構成したそうです。
しかし、世界の Calc Hackers は「風穴」を開ける手段を研究し、今では MPM という成果が公開されております。

2026年は、どうなってくるのでしょうか ?
世界が平和、平穏無事であります様に。( 「そんな事を言う前に、何かオモロイネタでも書けヤ !」と言われれば、仰るとおりではあります。ハンセイ )

そういや、この post が 400本目になっておりました。あーあ。

 

2025年12月18日木曜日

fx-CG100 の話題

 年末も近づいたこの頃であります。
本邦でも発売されて久しい fx-CG100 についての話題がありましたので、触れておきます。

 fx-CG100 開発者による UI の刷新についての解説

real time 検索をみていたら、つぎのpostがありました。

https://x.com/Tossy99077342/status/2001284830450024888

fx-CG100 の UI (主にキーボード面)の改良について、CASIO 開発者の思いを紹介する TOPICS のご紹介です。

確かに、キーボード面を始め、画面I/F など、細かい所が工夫されているのは良いことではあります。

fx-CG100 のファームウェアアップデーターの提供 

fx-CG100 にアップデーターが提供されておりました。

ref. ソフトウェアダウンロード - casio
https://support.casio.jp/download.php?cid=004&pid=1067

OS 2.0 → 2.1 への改変で、主に グラフアプリの強化 との事であります。

機能的には大きく変わる部分はないらしく、マニュアルの更新もない様に思われますが、fx-CG100 持っていないから、よくわかんねぇや。


2025年11月26日水曜日

ようやく、CASIO 関数電卓ページのトップ画像に fx-CG100 が登場しました

 永らく、fx-CG50 が写真では上がっておりましたが、ようやく写真が更新され、fx-CG100 が登場しました。

ref. 関数電卓 - CASIO 
https://www.casio.com/jp/scientific-calculators/#program

やす親分も申されておりましたが、fx-CG100 では CASIO BASIC を廃してしまったため、実用的な計算の必要な場合、upython のみという、結構キツイ状態とも言われます。
他にも Add-in が使いにくい構造になっているなど、fx-CG50 successor としては「?」な点が多いとも言われております。
そうした評価の CG100 が、遂に CASIO 関数電卓の top となった様で、CASIO の経営方針を垣間見たような感じでもあります。

CASIO 関数電卓は、学生、生徒向けの「教育型」関数電卓と、fx-5800P を筆頭とする「実用型」関数電卓の両者は、現時点で併売されております。
電卓製品では切磋していた Sharp ですが、PC の事業を切り離したらしく、今は dynabook株式会社から製品を出しているそうで、目下、技術的な成果を問うスマートフォンに経営資源を集中しているかの様でもあります。

「実用型関数電卓を必要とするならば、PCやスマートフォンを使うべし」の様な意見もあるようですから、実用型は、新機種を期待するのが難しいGenreになっているのかも知れません。
しかし、個人的には、密かに「製品が多種類、潤沢に用意されている事が"豊かさ"の指標なのではないか ?」という思いがあります。

ついでに記しておきますと、連休中、CASIO の 電卓アプデ提供ページが、止まっておりましたネ。今は復旧しております。 


こんな話と関係しているのかなぁ ? 

ref. クラウドフレアの大規模障害と海賊版訴訟が示す「ネットインフラの責任」
https://www.watch.impress.co.jp/docs/series/nishida/2065820.html 

そういや、1970年11月25日は、作家の三島由紀夫氏が自衛隊有志に決起を呼びかけ、呼応した自衛官が居なかった事に絶望し、割腹自殺を図った日だそうです。
( 何か、意図があるでもありません。単なる史実を書いただけ )

今後の動向に注目したく思います。

2025年11月16日日曜日

fx-CG50 の Add-in は強力な様子

 こんな post があったので、取り上げてしまいました。

 ref. https://x.com/bockringElec/status/1989343294028140609

 fx-CG50 で Bad Apple というアニメーション表示を行うデモを取り上げ、「fx-CG50 は非力なので、別の電卓を推奨する」としております。

確かに、TI-83+ CE では、Z80の binary が動き、海外ユーザーがゲームを作成しているそうで、うまくプログラムを組めば、同等の事が出来るかも知れません。

しかし、HP Prime は Binary プログラムを導入できるのか、まだ、よく判らない ( 昔、HP Prime のファームを根こそぎ削除して Linux を boot する、という研究があったそうですが)。

それらを以て、fx-CG50 が非力と断じるのは、ちょっと無理があるようにも思われます。

ただ、TI 電卓、HP Prime も面白い電卓でありますから、こうして取り上げるのは有り難いものではあります。 

Sentaro 様は、fx-CG50 で Clock up のプログラムを作成しており、 さらに C.BASIC まで登場しております。

他にも、KhiCAS(io), Python Extra の様な Add-in も公開されてて、かなりの事が出来るのです。

 Add-inの作成が出来る人ならば、fx-CG50 で、こうしたアニメーション表示をするプログラムを作成出来るかも知れません。

 fx-CG50 が Dis continue 製品となって、新しいグラフ電卓 fx-CG100 は、Add-In の利用が出来ない様にしており、Add-In を使うのは容易ではありません。

それでも、海外のユーザーは活発に、fx-CG100 でも Add-in を使用できる様な Hacking を行っているそうで、既に一部の Add-in が 稼働していると言われます。

しかし、アニメーション表示、スゲェな ... 画像を圧縮しても、かなりのデータ量と思われます。デモとしては凄さが伝わってきますが、電卓に常駐させるとなると、他に何も入らないかも 。

Add-in 作成は、かなりの知識が必要でありますから、「物欲しげ」に周囲をうろつくしかありません。

 

2025年11月7日金曜日

χCAS(io) が見られないゾ ... (追記しました)

 fx-CG50, fx-9750GIII などで動く、CAS「χCAS(io)」が、2025-11-06 現在、見られない状態になっております。

https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicasioen.html

そこで、Wayback machine で検索した所、ちゃんとアーカイブがあると解りました。

https://web.archive.org/web/20250911060358/https://www-fourier.ujf-grenoble.fr/~parisse/casio/khicasioen.html

本家サイトが回復するまでは、ここでお世話になるようです。

ついでに、以前、芝村先生の記事が出ていたのですが、トピックス・ページという所に収録されております。

https://www.casio.co.jp/topics/

色々と面白い記事があるので、気になった方は是非ともご覧頂きたく思います。

 

2025-11-23 追記

KhiCAS(io) のアドレスを紛失してしまい、再度、検索した所、以下のページが出てきました。

ref.  χCAS(io)
https://www-fourier.univ-grenoble-alpes.fr/~parisse/casio/khicasioen_o.html

どうも、アドレスを見る範囲では、ドメインに変更があったらしく、以前のページが見られなくなったようです。

所が、新しいページでは、気になる部分があります。

  •  fx-CG50 向けのファイル「khicasen.g3a」のみになっております
  • それまで 2MB あったサイズが、1.0MB になっております 

新しくなった事で、サイズが小さくなったのか、と思い、手持ちの fx-CG50 で試してみましたが、どうにも不具合で、実行できないのです。
具体的には、Menu に出て来ないので、実行できない状態。ウーム ?

以前は fx-CG100 で動かす手段として mpm も紹介しておりました。また、fx-9860GIII, fx-9750GIII でも動く khicasen.g1a も用意されておりましたが、今は見当たりません。
その場合は、上記に示しました wayback machine のページからダウンロードできます。

もしかすると、新しいサイトの Add-in ファイル、fx-CG50 では動かないものの、mpm を使った fx-CG100 なら動くのかも知れません。
蛮勇をお持ちの方は、お試し下さい。

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 コードを作成するとき、ファイル名にハイホンは入力できんのですね。道理で。

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