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)


8 件のコメント:

  1. akatuki様、皆様、こんにちは!

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

    これ入試問題なんですね。
    なかなかに練られた問題な感じですが、そこを力技で解くというのがツボにハマりました(^^;


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

    CG50のPythonはネイティブ(いうてもPコードインタプリタですが)で動作してるのでその高速性は折り紙付きです。
    ちなみに純正BASICでも8秒位で完了してしまうのでCG50のPythonならあっという間ですね。

    次はグラフィックスでの慣らし運転にも期待してます。(^^)

    返信削除
  2. Sentaro 様、ようこそお越しくださいました !

    > これ入試問題なんですね。
    > なかなかに練られた問題な感じですが、そこを力技で解くというのがツボにハマりました(^^;

    NHKのテレビ番組から引っ張ってきたネタでした。
    こうした問題は、本来ならば、番組の趣旨の様に、正しい解法を学ぶべきものではあるのですが、
    プログラムという甘美な道具の味を知ってしまうと、どうしても機械のパワーに頼りたく ...
    こういう「インチキなジジイになってはイケナイ」という反面教師的な意味合いを込めて、ではあります。

    > CG50のPythonはネイティブ(いうてもPコードインタプリタですが)で動作してるのでその高速性は折り紙付きです。

    upython の速度を期待して、単純ループ問題をやってみた様な所もありました。

    > ちなみに純正BASICでも8秒位で完了してしまうのでCG50のPythonならあっという間ですね。

    オッ, CASIO BASICでも、結構行きますネ !

    > 次はグラフィックスでの慣らし運転にも期待してます。(^^)

    いやぁ、耄碌しており、最近はロクに作業もしていない有様 ...
    既に、Mandelbrot graphics の様な話題を取り上げている方もおられる様です。
    当方としては、ネタ探しに窮しております。

    返信削除
  3. akatuki様、皆様、こんにちは!

    >プログラムという甘美な道具の味を知ってしまうと、どうしても機械のパワーに頼りたく ...

    昔の速度が遅いプロ電だと総当たり計算は実行放置で気がつけばエラーで止まってたとかになるのですが、
    短時間で結果が出るならハイスペックなプログラム電卓の使い方としては至極真っ当ですね。(^^)


    >既に、Mandelbrot graphics の様な話題を取り上げている方もおられる様です。
    >当方としては、ネタ探しに窮しております。

    ほんのちょっと前に電卓喫茶様のMexican Hatもありましたが、
    そういえば、以前、シダの葉グラフィックスで盛り上がってましたね。
    まだC.BasicCG登場以前の話でしたけど、あれはとっても興味深く面白いネタでした!

    https://akatuki-724.blogspot.com/2017/10/blog-post.html
    から、やす様方面に伝搬して、
    https://egadget.blog.fc2.com/blog-entry-621.html

    そしてPython解説エントリでPython移植版と相成りました。(^^)
    https://egadget.blog.fc2.com/blog-entry-723.html

    返信削除
  4. Sentaro 様、どうにも、オツムの血の巡りが悪く、遅くなっておりまして申し訳ないであります。

    > 昔の速度が遅いプロ電だと総当たり計算は実行放置で気がつけばエラーで止まってたとかになるのですが、
    > 短時間で結果が出るならハイスペックなプログラム電卓の使い方としては至極真っ当ですね。(^^)

    そうでありますネ !
    昔は、時間が掛かるとか、途中で止まっておったやん、とか、色々と頭を捻りながら、こちゃこちゃとやるのも
    楽しかったのですが、今から考えると、時間がゆっくりとして、ある意味、余裕があったような ?
    今は、様々なデバイスで、かなりの速度があります。
    同時に、作業も多様化しているので、ユーザーがデバイスに「何をさせたいのか」も問われるという。

    > ほんのちょっと前に電卓喫茶様のMexican Hatもありましたが、

    先度、Numworks電卓でMexican Hat の移植評価をされた方が X(旧 Twittre) でポストされておりましたネ。
    Numworks電卓、結構速いそうです。

    > そういえば、以前、シダの葉グラフィックスで盛り上がってましたね。
    > まだC.BasicCG登場以前の話でしたけど、あれはとっても興味深く面白いネタでした!

    いや、これは恐縮であります。
    かなり以前に、日経サイエンスの連載「コンピューター・リクリエーション」(A. K. Dewdney) の記事か何かでみた様な気がしていて、調べていたら、Wikipedia に記述があったため、試したものでした。
    ( ネタ明かしです )

    面白そうなネタ、探しておりますが、チョット時間が掛かりそう。
    長い目でみて戴きたく。

    返信削除
  5. akatuki様、皆様、こんにちは!

    >昔は、時間が掛かるとか、途中で止まっておったやん、とか、色々と頭を捻りながら、こちゃこちゃとやるのも
    >楽しかったのですが、今から考えると、時間がゆっくりとして、ある意味、余裕があったような ?
    >同時に、作業も多様化しているので、ユーザーがデバイスに「何をさせたいのか」も問われるという。

    相対的に見れば当時の8ビットパソコンでもポケコンやプロ電からすると爆速だったわけですが、
    いざ計算となると現在のCWシリーズのスタンダード関数電卓にも負けてしまうような速度だったわけで、何もかもがのんびりしていましたね。

    今のPCやスマホだと使うというより使われているような感じもありますし、
    当時ののんびり具合が人間の思考速度とちょうどいい塩梅だったかもしれませんね。(^^)


    >先度、Numworks電卓でMexican Hat の移植評価をされた方が X(旧 Twittre) でポストされておりましたネ。
    >Numworks電卓、結構速いそうです。

    3秒以下で描画できるのはかなり速いですね。
    Numworksのはいくつかバージョンあるのですが一番速いN120EXモデルだと500MHz超でPrimeG2と同等だったかですが現行主力モデルN115は216MHzでちょっと抑えた感じになってますね。

    NumworksのPythonの高速性を見せられるとCASIOの次期CG100がCPUを刷新しなかったのが惜しまれるところですが、教材としてみればそこのところはあまり影響は無いのかもしれません。


    >かなり以前に、日経サイエンスの連載「コンピューター・リクリエーション」(A. K. Dewdney) の記事か何かでみた様な気がしていて、調べていたら、Wikipedia に記述があったため、試したものでした。
    ( ネタ明かしです )

    あ、そうだったんですね。
    シンプルなプログラムで訴求力のあるグラフィックスが出てくるあたりが計算機で描くグラフィックスの醍醐味ですよね。(^^)

    返信削除
  6. Sentaro 様、どうにも余計な事をしていたら、遅れてしまいました。申し訳ない !

    > 相対的に見れば当時の8ビットパソコンでもポケコンやプロ電からすると爆速だったわけですが、
    > いざ計算となると現在のCWシリーズのスタンダード関数電卓にも負けてしまうような速度だったわけで、何もかもがのんびりしていましたね。

    そうですネ。
    身近なデバイスの性能の向上は、作業の効率に資する所でありますが、

    > 今のPCやスマホだと使うというより使われているような感じもありますし、
    > 当時ののんびり具合が人間の思考速度とちょうどいい塩梅だったかもしれませんね。(^^)

    ではあります。
    その分、ユーザーの選択肢、というか、作業させたい内容、事柄も「向上」している、という事なのでしょうが、
    そこで、デバイスの側が「何をさせたいのか ?」と問うて来ている、という事なのかも ?

    > 3秒以下で描画できるのはかなり速いですね。
    > Numworksのはいくつかバージョンあるのですが一番速いN120EXモデルだと500MHz超でPrimeG2と同等だったかですが現行主力モデルN115は216MHzでちょっと抑えた感じになってますね。

    ゲーッ !
    N110, N120あたりが最新と思ったら、そこまで進んでおったのね ...
    やりすぎの感もありますが、同時に、電池の減りも心配 ?

    > NumworksのPythonの高速性を見せられるとCASIOの次期CG100がCPUを刷新しなかったのが惜しまれるところですが、教材としてみればそこのところはあまり影響は無いのかもしれません。

    教育現場logisticsの都合で「乾電池を使う」という要請が(何処かで)あるでしょうから、プロセッサの更新も慎重になっているのかも ?

    > あ、そうだったんですね。
    > シンプルなプログラムで訴求力のあるグラフィックスが出てくるあたりが計算機で描くグラフィックスの醍醐味ですよね。(^^)

    それで、「変化球」を放ってみましたヨ !
    残念ながら、結構重いモノになってしまいましたが。

    返信削除
  7. akatuki様、皆様、こんにちは!

    >そこで、デバイスの側が「何をさせたいのか ?」と問うて来ている、という事なのかも ?

    計算や思考の補助だった時代があっという間に過ぎ去って、代わりに全部やってくれるのも時間の問題っていう感じになってきてますね。
    人間と寸分違わぬ人型ロボットも遠くない将来には実現しそうですし、
    このままだと人間は退化の一方でまさにAIに支配されるSFの世界が現実味を帯びてきます。(^^;


    >N110, N120あたりが最新と思ったら、そこまで進んでおったのね ...
    >やりすぎの感もありますが、同時に、電池の減りも心配 ?

    550MHzのN120が出てからそれが主力となると思いきや意外と216MHzのN110ベースが主力で継続しているので500MHz超はバッテリの持ち具合とか?オーバースペックということだったのかもしれません。


    >教育現場logisticsの都合で「乾電池を使う」という要請が(何処かで)あるでしょうから、プロセッサの更新も慎重になっているのかも ?

    CG50が2017年に出てから7年経ってますから、スマホやPCの最先端CPUであれば数世代進んで性能2倍で消費電力半分以下となる感じですが、電卓に使えるCPUとなるとそこのところの進化の恩恵が遅れるところが辛いところですね。
    CG20からCG50ではクロック2倍で消費電力据え置きを実現していたので、CG100の売れ行き次第ではその次のCG200?でそうなる可能性はありますが、その頃にはライバルは1GHz級になっているかもで(^^;


    >それで、「変化球」を放ってみましたヨ !
    >残念ながら、結構重いモノになってしまいましたが。

    最初は重めな感じがちょうどいいかもですね。
    そこからちょっとでも速くする工夫がまた楽しからずやなところもありますし。(^^)

    返信削除
  8. Sentaro 様、早々の御来訪、多謝であります !

    > 計算や思考の補助だった時代があっという間に過ぎ去って、代わりに全部やってくれるのも時間の問題っていう感じになってきてますね。
    > 人間と寸分違わぬ人型ロボットも遠くない将来には実現しそうですし、
    > このままだと人間は退化の一方でまさにAIに支配されるSFの世界が現実味を帯びてきます。(^^;

    仰るように、スマートフォンというI/Fを介してAIのチカラを利用できる様になって、
    ユーザーの「できる事」の幅が急速に拡大しておりますから、ある意味、スマートフォンユーザーにとっては莫大に増大する選択肢からの逃避、「自由からの逃走」となりつつあるのか ? などと。
    そこで、ガキの頃には、「自分が何をしたいのか」を探すきっかけとして、「ゆとり教育」の様な試みが考えられていたのか、などと思ってみたりですネ。
    まあ、理想の「答え」はまだ、得られていない様で、教育環境も含めて、現実社会というのも、実験を繰り返して、徐々に変化していく様ですから、そういう「進歩」の余慶に与る程度で、のんびりとしていればいいのかも知れませんが、
    誰か、思いもよらない所から画期的な出来事が姿を現し、それが、どんな形かは図りし得ないけれども、ある意味で「決定的」なもので、後戻り出来ないとなると、ヤバイかも ? なんて思ったりもするのではありますが、そうなった所で抗う術を持ち合わせている様な人々は、ごく一部かも知れず、などと、Distopiaっぽい事まで想を巡らせてみても、そうした社会環境というのは、決然として眼の前に出現するでもなく、ダラダラとしていた所で、いつの間にやら「新世紀」だった、という具合らしく、さて、どうしたらよかんべ ?
    まあ、どんな世の中になろうと、なんだかんだ言って、人々は暮らして行くので、先の事を心配するよりは、今の、お子さんを育てている親御さんが、選択して行くのでしょうし、暮らしやすい世の中を選択して行く、その行き先を見守って行くしかない様でもあります。

    > 550MHzのN120が出てからそれが主力となると思いきや意外と216MHzのN110ベースが主力で継続しているので500MHz超はバッテリの持ち具合とか?オーバースペックということだったのかもしれません。

    なんと !
    550MHz というと、少し前のAndroidスマートフォンに迫る勢いですね (そこまでは来ていないか ?)。
    向こうは、様々開発されているプロセッサを自由に使って、製品開発をしておりますが、ハードウェアについては、プロセッサが様々開発されているので、電卓のファームウェアを設計する所に開発資源を集中できる様な感じなのか、と。

    > CG50が2017年に出てから7年経ってますから、スマホやPCの最先端CPUであれば数世代進んで性能2倍で消費電力半分以下となる感じですが、電卓に使えるCPUとなるとそこのところの進化の恩恵が遅れるところが辛いところですね。

    先端的な製品となるとスマートフォンだったりしますから、そういう分野の製品開発は活発になり、他の製品は注目を集めないため、進歩も停滞している風に見えてしまいがちであります。

    > CG20からCG50ではクロック2倍で消費電力据え置きを実現していたので、CG100の売れ行き次第ではその次のCG200?でそうなる可能性はありますが、その頃にはライバルは1GHz級になっているかもで(^^;

    仰るとおり、スマートフォンの技術開発の「おこぼれ」というか、先端開発の「お下がり」の成果を使っている様でもありますから、向こうはハードウェアの進歩はまだまだ行きそうではあります。
    CASIOとしては、電卓を一からか開発しているので、「お下がり」も自前のものしか利用できないというハンデがある、ソコが辛い様でもあり。

    > 最初は重めな感じがちょうどいいかもですね。
    > そこからちょっとでも速くする工夫がまた楽しからずやなところもありますし。(^^)

    そう言ってもらえると気が楽です。

    CASIOの開発陣も、手駒は限られるとは思うのですが、創意工夫で、新しい製品を問うて欲しいと思う所ですネ。

    返信削除