2025年1月31日金曜日

「CASIO 電卓 60周年」ですってヨ !

 CASIOの電卓が60周年との事で、サイトが開設されておりました。

ref. CASIO 電卓 60周年記念サイト
https://www.casio.com/jp/basic-calculators/content/60th/

CASIOの計算機は、リレー(継電器)とメカを使う方式の計算機から始まっているらしいのですが、フル電子回路の計算機「電子式卓上型計算機」=電卓の始祖として「001」を世に問うたのが、1965年との事。
そこから60年が経ち、記念サイトの立ち上げと、長く愛用できる、飽きのこない電卓の新製品を発表したようです。

ref. 60年のノウハウを結集した長く愛用できる電卓
https://www.casio.co.jp/release/2025/0116-jt200t/

60周年記念サイト、CASIOの電卓の歴史を総覧するには、とても便利ではあります。CASIO最初の関数電卓「fx-1」、世界初のグラフ電卓「fx-7000G」など、斬新な製品が見られます。

しかし、惜しいなぁ、と思うのは、ポケットコンピューターについて触れられていない所でしょうか。
まあ、ポケットコンピューター、PCは、既に事業を終了してしまったらしく、「終了してしまった事業の事まで掲載するのは、どうなのか ?」という経営判断なのかも知れません。

それでも、ポケコンの末裔に近しいグラフ関数電卓が継続されているのは、やはり奇跡に近い様でもあります。


2025年1月1日水曜日

С Новым Годом 2025 !

あけましておめでとうございます。

今年は巳年。「古き衣を脱ぎ捨て、蛇は新たに生まれ変わるべし」となるのでしょうか。

 

電卓の敗退と逆襲


過日、Androidスマートフォンの比較的新し目の機種をいじる機会があり、電卓を使ってみたのですが、いや、驚いちゃったねェ。標準でも、一部の関数機能の利用が出来ますが、中でも驚いたのが、階乗の計算能。普通の関数電卓でも、69! までしか計算できませんが、Androidスマートフォンの階乗計算、19515! = 6.758099E75235 というキチガイじみた値まで計算しましたよ。マイッタ。

しかし、階乗の計算に限定すれば、upython でもある程度イケるのではないか、と。
 
 ```
def long_f(n) :
  r =  1
  for i in range(n) :
    r = r * (n+1)
  return r

long_f(1000)
```
これで値を返すはずなのですが、fx-CG50 で行うと、メモリが足りないという返事。これはクルシイ。恐らく、整数の全桁を表示するためのメモリが足りない、という所なのではなかろうか。
この面だけみると、「関数電卓の敗北」という具合になりそうですが、Androidスマートフォンの様に概算で良ければ、それなりの値を得る方法はあります。こんなコードはどうでしょうか。
```
import math

def large_f(n) :
  r =  0
  for i in range(n) :
    r = r + math.log10(i+1)
  print(pow(10, r-int(r)), 'e', int(r))
```
以下、パソコで実行した場合の出力を示しておきます。
```
>>> large_f(330)
2.8240846225829777 e 689
>>> large_f(1000)
4.023872600748676 e 2567
>>> large_f(10000)
2.84625968062148 e 35659
>>> large_f(20000)
1.8192063204524245 e 77337
```

やっている事と云うと、階乗の計算の対数を取ると解ります。log(n!) = Σ log(k) です。総和計算をしてから、10のべき乗にすれば、所望の値を得られるという寸法。

fx-CG50 では、複数の手段が利用できます。以下では、20000! の計算をやってみた結果を示しておきます。

  1. 数式計算

    こんな具合です。
    ```
    Σ(log I, I, 1, 20000) →R 
    77337.25988
    ```
    ほぼ、30秒くらい掛かりました。20000までの対数の和を求めるとなると、これくらいは掛かりそうです。

  2. BASIC
    色々と技巧を凝らす余地がありそうですから、ここではBASICのコードを提示する事は止めておきますが、
    当方が試した所、およそ50秒程度の時間が掛かりました。プログラムループですから、時間が掛かるのはやむを得ない所です。その分、プログラムの内容を変更できるという自由度がある訳です。

  3. upython
    上記のコードがそのまま動きます。
    fx-CG50 upython では、圧倒的な速さで、なんと 6秒くらいでした。

まあ、16000! なんて値、日常で使う機会はなさそうなので、今回も「ネタ」という事で御了承戴き度。

  こうしてみると、upython の可能性は目を見張るものがありますが、これだけに突っ込んでしまうと、関数電卓の部分が疎かになったりしないのか、という不安もあります。
それよりは、様々な計算の手段を充実して、社会に貢献して欲しいと、切に願うものではあります。

そんな具合ですが、今年もポツポツとやって行きたく、よろしくお願い申し上げ候。