ご無沙汰です。最近は、blog へのポストも滞っております。何と言ってもネタ枯れがキツイ。
永らくお休みしていた所で、プログラミング作業も全く行っていないのでありますが、「では、何をしていた ?」というと、電卓にある Solver 機能で、いくつかの計算式の数値を計算するなど、電卓本来の用途を"満喫"していた次第。
計算式の一つの例としては、タイマー IC 555 の無安定マルチバイブレーター動作で、発振周波数の計算をしておりました。
f = 1/(ln 2 *(R1+2*R2)*C)
これを Solver に入力しておき、R1, R2, C から 発振周波数 f を計算する、という手筈。Solver なので、逆に f を指定し、コンデンサ容量 C を逆算する、という用途にも使えます。
ちなみに、電卓の Solver では、変数の名前に使えるのは 英数字名1文字 である場合が多いので、上記の式は
f = 1/(ln 2 *(R+2*Q)*C)
の様に書き換える必要があります。
で、Solver の利便を満喫していた所で、「そうや、地球上の 2点間の距離を計算する式があったな」と思い出し、使ってみようと。
[HP200LX manual より]
Distance = 69.0466*acos( sin(LT1)*sin(LT2) + cos(LT1)*cos(LT2)*cos(LG1 - LG2) )
LG1, LT1 ; 第1 地点の経度(Longtitude), 緯度(Latitude)
LG2, LT2 ; 第2 地点の経度(Longtitude), 緯度(Latitude)
※ 東経、南緯は 負数で指定する
例 :
Pennsylvania 州 Philadelphia (北緯 40° 35' 西経 75° 10') と
Oregon 州 Corvallis (北緯 44° 35' 西経 123° 16') の間の法定マイルを求める。
答 :
計算結果は 2425.31 [法定マイル]
これを、fx-CG50 の Solver で計算しようと思ったのですが、操作を始めて、計算する所で「詰んでしまった」のです。
というのも、Solver の数値入力画面で、度分秒の入力が出来んのですヨ ! ウーン、マイッタ ... 。
「エ、ウソ !?」とお思いの方、お手元に fx-CG50 があったなら、是非ともお試しいただきたく思います。
(ぶっちゃけ、40° 35' という数値を入力するには 40+35/60 とやってやれば済むのではありますが、こうなってしまうと、度分秒の記号はいらん事になってしまう ... )
「最新の電卓製品で、此の辺りはどうなん ? 」と思ったんで、近所の家電量販店に行って、電卓をポチポチと操作してみました。操作したのは、fx-JP500CW 。
(何でコレにしたのかというと、店頭で稼働展示されている機種だからだったりします。CASIO の営業サマ、お疲れ様です)
上記の数式をすぐに思い出すほどオツムの回転が良くないので、Solver を動かして適当な式を入力し、変数入力で度分秒の数値が入力できるか、という所を確かめました。すると、そこは最新の電卓製品だけあって、入力自体はどうにか出来ますネ。
少し操作が煩雑になってしまいますが、全く入力できないよりは雲泥の差ではあります。
昔の関数電卓では、度分秒の入力補助として DMS→、→DMS といった(疑似)関数機能がありました。
度分秒の入力で、一旦度分秒を "度.分秒" として入力し、DMS→ キーを押して、度に変換するものです。
具体的には、40度35分15秒の場合、40.3515 と入力、DMS→ を押して 40.5875 と 10進数変換して計算に供するのでした。
時代が下り、今日では自然数式入力が全盛となっております。
この度分秒の入力についても「°」の区切り文字を使うことで、(便宜上)60進数の記法に沿う形で数値表現が出来る様になりましたが、電卓全体で統一されたデザインとして具現されていない様でもあり、数値入出力 I/F としては"いま一つ"(イマイチ)の状態、と言えるのかも知れません。
最新の fx-JP500CW では、数値入力時に「°」を呼び出す事が出来ましたが、計算結果を度分秒にて表示したいというニーズについては、試しておりません。
incremental な改良を経て、良くなっていくのでしょう。
そんな具合で、ここでは少しだけ不満をブータレてしまいました。ついでに言うと、手元には HP35S (新版) があり、キーボード面に →HMS, などの機能があります。こうした用途では「電卓そのものを取り替える」という手段もあるのか、などと思ってみたり。
高機能電卓の情報を広く扱おうと、こんな題名にしました。 先日、手持ちの HP50G がイカれてしまい、HP電卓についての話題を追いかける事が出来なくなりました。 他社の高機能電卓も気になるので、色々とちょっかい出しますヨ。 宜しくネ。
2026年4月21日火曜日
少し不平を言わせてもらいたく
2022年1月5日水曜日
虚礼廃止 2022
最近は、記事をポストしておらんで、人々から忘れ去られようとしております当blog。
それでもひっそりと暮らしておる所であります。
最近はめっきりと使わなくなってしまった「HP35S」ですが、久しぶりに電源を入れると、電池切れで動かんですね。
そこで、電池を交換するのですが、これの電源は、CR2032というリチウムコイン電池です。
リチウムコイン電池、最近では様々な製品に利用するので、買い置きがあり、すぐにも交換に至ったのですが、一方、使い終わった電池はゴミとして処分しないとならない。
「リチウムコイン電池、どこかで回収しておるんかいや ?」と、調べたのですが、以下のサイトによると、
ref. http://www.eme-tokyo.or.jp/consultation/faq/answer64.php
リチウムコイン電池は「環境負荷が小さく、タダの不燃ごみとして捨てていい」らしい。これは驚いた。
結構「エコ」だった、というと大袈裟ではありますが、まあ、気を使わんでいいのは有り難い所。
一方、昨今は「SDGs」とかいうて「レジ袋を使いまわしましょう、ポリ袋は敵だ」と言わんばかりであります。
過日、TBSで放映された「日本沈没」ですか、何となく「地中奥深くにあるエネルギー資源を汲み出すという施設が業して、日本国土の大半が沈没してしまった」という寓話的展開でしたが、「ポリ袋を燃やさなければSDGs、環境は救われる」というのは、ホントなんじゃろか ?
自動車産業の多くは、欧州で進みつつあるガソリン車脱却、電気自動車の開発への方向転換で、舵を切っていると言われております。
それは、欧州、米国で車を売り込むという事情から、らしい。
欧州、米国を中心にSDGsの大合唱。北極や北欧の国々は、地球温暖化で国土が縮小しつつと言われており、地球温暖化は、国際世論となっている。しかし、それが二酸化炭素の排出を抑えるだけで解消できるのだらうか ?
かつて、独逸の「黒い森」が、NOx による酸性雨から枯死が進んでいると言われておりました。そこで自動車業界は排ガス規制を設け、それに応じた形で自動車開発を進めてきたのですが、
今度はSGDs、電気自動車というゴールポストを設置、ルールセッターにうまく誘導された形であります。
欧州の一部メーカーは電気自動車の開発でリードしていると言われておりますが、全てのメーカーでは無さそう。一方、日本の自動車産業の多くが電気自動車の開発へ軸足を移しているとか。
当方なんぞは、自動車を買うほどの財がある訳ではありませんから、自動車産業がどこへ向かおうと知ったこっちゃありませんや。
所が、TBS「日本沈没」では、こうした大企業の「企業城下町」を海外に移設、ついでに周辺住民などを受け入れを諸外国へ打診する、ちう無理筋なハナシで進んでおりました。
1企業城下町の移設で、数百万の人々を海外移民出来るなんて、与太話もいい加減にしろヨ。
まだまだ、色々といいたいことはあるのですが、筆も鈍って来ており、ここらが潮時なのかも知れませぬ。新年早々、うんざりする様な話題で相済みませぬ。
謹賀新年 (虚礼廃止だったのですが)
それでもひっそりと暮らしておる所であります。
最近はめっきりと使わなくなってしまった「HP35S」ですが、久しぶりに電源を入れると、電池切れで動かんですね。
そこで、電池を交換するのですが、これの電源は、CR2032というリチウムコイン電池です。
リチウムコイン電池、最近では様々な製品に利用するので、買い置きがあり、すぐにも交換に至ったのですが、一方、使い終わった電池はゴミとして処分しないとならない。
「リチウムコイン電池、どこかで回収しておるんかいや ?」と、調べたのですが、以下のサイトによると、
ref. http://www.eme-tokyo.or.jp/consultation/faq/answer64.php
リチウムコイン電池は「環境負荷が小さく、タダの不燃ごみとして捨てていい」らしい。これは驚いた。
結構「エコ」だった、というと大袈裟ではありますが、まあ、気を使わんでいいのは有り難い所。
一方、昨今は「SDGs」とかいうて「レジ袋を使いまわしましょう、ポリ袋は敵だ」と言わんばかりであります。
過日、TBSで放映された「日本沈没」ですか、何となく「地中奥深くにあるエネルギー資源を汲み出すという施設が業して、日本国土の大半が沈没してしまった」という寓話的展開でしたが、「ポリ袋を燃やさなければSDGs、環境は救われる」というのは、ホントなんじゃろか ?
自動車産業の多くは、欧州で進みつつあるガソリン車脱却、電気自動車の開発への方向転換で、舵を切っていると言われております。
それは、欧州、米国で車を売り込むという事情から、らしい。
欧州、米国を中心にSDGsの大合唱。北極や北欧の国々は、地球温暖化で国土が縮小しつつと言われており、地球温暖化は、国際世論となっている。しかし、それが二酸化炭素の排出を抑えるだけで解消できるのだらうか ?
かつて、独逸の「黒い森」が、NOx による酸性雨から枯死が進んでいると言われておりました。そこで自動車業界は排ガス規制を設け、それに応じた形で自動車開発を進めてきたのですが、
今度はSGDs、電気自動車というゴールポストを設置、ルールセッターにうまく誘導された形であります。
欧州の一部メーカーは電気自動車の開発でリードしていると言われておりますが、全てのメーカーでは無さそう。一方、日本の自動車産業の多くが電気自動車の開発へ軸足を移しているとか。
当方なんぞは、自動車を買うほどの財がある訳ではありませんから、自動車産業がどこへ向かおうと知ったこっちゃありませんや。
所が、TBS「日本沈没」では、こうした大企業の「企業城下町」を海外に移設、ついでに周辺住民などを受け入れを諸外国へ打診する、ちう無理筋なハナシで進んでおりました。
1企業城下町の移設で、数百万の人々を海外移民出来るなんて、与太話もいい加減にしろヨ。
まだまだ、色々といいたいことはあるのですが、筆も鈍って来ており、ここらが潮時なのかも知れませぬ。新年早々、うんざりする様な話題で相済みませぬ。
謹賀新年 (虚礼廃止だったのですが)
2015年6月11日木曜日
「Leapfrogs !」
「Leapfrogs」というゲーム(というかパズル ?)があります。
# ゲームの目的
一本の木の上に、右を向いたカエル(A)と左を向いたカエル(B)が4匹ずつ、並んでいます。カエルA, B の間には、カエル1匹が入るだけの狭い空間(_)があります。
BBBB_AAAA
カエルA, B は、お互いに「向こう側」に行きたがっているのですが、細長い木の上なので、身動きが取れません。そこで、カエルをつついて移動させ、つぎの状態に持っていくのが、このゲームの目的です。
AAAA_BBBB
1本の木の上なので、カエルをつつく事で、
最初は、3, 4, 6, 7 のカエルのみが移動できます。例えば、ここで3のカエルをつついて移動させると、3に居たカエルは4のカエルをジャンプで飛び越し、5へ移動します。
こうしてカエルをつついて移動させ、最終的に
の状態に持って行きます。
慣れてきましたら、カエルを移動させる回数を出来るだけ少ない手順で行う方法を探求してみるのが面白いでしょう。
簡単なパズル・プログラムなので、高機能電卓でも十分楽しめるプログラムが作成できると思います。
この記事では、久しぶりにHP35Sで動くプログラムを作成しました。
# 使い方
HP35S では、文字列の加工が出来ないので、苦肉の策として16進数表示を使ってみました。空白の表示は「C」となっています。
C 試行回数
I, J 配列変数操作インデクス
M 移動するカエルの位置
S 空白の位置
Reg(1)...R(9) ステージ状態
# プログラム
このプログラムでは両側に4匹ずつのカエルが配されています。この場合、最小の手数が24手になるとの事です。
詳しくは、次のサイト様で色々な解説がありますので、御参考下さい。
『カエル跳びゲーム』解答
http://math.a.la9.jp/akaeru.htm
かなり昔に、ポケコンでプログラムを作ったのですが、その時は「最小の手数が24手」というのが、どうにも判らんかったのでした。
# ゲームの目的
一本の木の上に、右を向いたカエル(A)と左を向いたカエル(B)が4匹ずつ、並んでいます。カエルA, B の間には、カエル1匹が入るだけの狭い空間(_)があります。
BBBB_AAAA
カエルA, B は、お互いに「向こう側」に行きたがっているのですが、細長い木の上なので、身動きが取れません。そこで、カエルをつついて移動させ、つぎの状態に持っていくのが、このゲームの目的です。
AAAA_BBBB
1本の木の上なので、カエルをつつく事で、
- のそのそと、となりのコマに移動できます
- 一匹分のスペースをジャンプして、移動できます
123456789 ←場所 (インデクス) BBBB_AAAA ←カエルの配置状態 (ステージ)
最初は、3, 4, 6, 7 のカエルのみが移動できます。例えば、ここで3のカエルをつついて移動させると、3に居たカエルは4のカエルをジャンプで飛び越し、5へ移動します。
123456789 ←場所 (インデクス) BB_BBAAAA ←カエルの配置状態 (ステージ)
こうしてカエルをつついて移動させ、最終的に
123456789 ←場所 (インデクス) AAAA_BBBB ←カエルの配置状態 (ステージ)
の状態に持って行きます。
慣れてきましたら、カエルを移動させる回数を出来るだけ少ない手順で行う方法を探求してみるのが面白いでしょう。
簡単なパズル・プログラムなので、高機能電卓でも十分楽しめるプログラムが作成できると思います。
この記事では、久しぶりにHP35Sで動くプログラムを作成しました。
# 使い方
HP35S では、文字列の加工が出来ないので、苦肉の策として16進数表示を使ってみました。空白の表示は「C」となっています。
- [XEQ] L [ENTER] で起動
- C = 1 の様に、試行回数を表示
- つぎの書式でステージを表示
123456789h ←インデクス
BBBBCAAAAh ←「カエル」表示 - 移動対象のカエルをインデクスにて指定し、[R/S] を押して入力します
- 「上がり」状態になれば「CLEAR !」と表示され、最後に操作回数を表示して、プログラムは終了します
- 上がりでなければ、2. へ戻り、繰り返しになります
C 試行回数
I, J 配列変数操作インデクス
M 移動するカエルの位置
S 空白の位置
Reg(1)...R(9) ステージ状態
# プログラム
L001 LBL L L002 DEC L003 1 L004 STO I L005 4 L006 STO(I) L007 1 L008 STO+ I L009 4 L010 STO(I) L011 1 L012 STO+ I L013 4 L014 STO(I) L015 1 L016 STO+ I L017 4 L018 STO(I) L019 1 L020 STO+ I L021 3 L022 STO(I) L023 1 L024 STO+ I L025 5 L026 STO(I) L027 1 L028 STO+ I L029 5 L030 STO(I) L031 1 L032 STO+ I L033 5 L034 STO(I) L035 1 L036 STO+ I L037 5 L038 STO(I) L039 1 L040 STO C L041 5 L042 STO S L043 VIEW C L044 PSE L045 1.009 L046 STO I L047 0 L048 16 L049 * L050 RCL(I) L051 + L052 ISG I L053 GTO L048 L054 1 L055 + L056 +/- L057 ENTER L058 ENTER L059 AAAACBBBBh L060 x=y? L061 GTO L092 ; 上がり判定 L062 R↓ L063 123456789h L064 x<>y L065 HEX L066 STOP ; 入力部分 L067 DEC L068 STO M ; L069 RCL S L070 - L071 ABS L072 2 L073 xL074 GTO L089 ; 入力が範囲外か ? L075 RCL M L076 RCL S L077 x=y? L078 GTO L089 ; 空き位置の指定 ? L079 RCL M L080 STO I L081 RCL S L082 STO J L083 RCL(I) L084 STO(I) L085 3 L086 STO(I) L087 RCL M L088 STO S L089 1 L090 STO+ C L091 GTO L043 L092 1 L093 STO- C L094 SF 10 L095 CLEAR ! L096 PSE L097 CLEAR ! L098 PSE L099 CLEAR ! L100 PSE L101 CF 10 L102 VIEW C L103 RCL C L104 RTN
このプログラムでは両側に4匹ずつのカエルが配されています。この場合、最小の手数が24手になるとの事です。
詳しくは、次のサイト様で色々な解説がありますので、御参考下さい。
『カエル跳びゲーム』解答
http://math.a.la9.jp/akaeru.htm
かなり昔に、ポケコンでプログラムを作ったのですが、その時は「最小の手数が24手」というのが、どうにも判らんかったのでした。
2012年10月16日火曜日
HP35Sでt検定だッ
最近は「こんな電卓が欲しい」などと言ったボヤき記事ばかりでしたので、基本に立ち戻って、電卓の利用についての話題を。
HP35Sの数値積分能とプログラムを駆使して(?)、t検定をやってみました。統計の知識が別に入り用ですが、手頃な入門書は図書館にでも行って探してみて頂戴。
1. プログラム
2. プログラムの使い方
プログラム自体は、t分布の累積分布関数(cdf ; cumulative distribution function)について、xから∞までの範囲(=「右裾」)の値を返すものです。
あらかじめ、自由度dfをレジスタDに入れておき、スタックトップにxを置いておき、
[XEQ] D [ENTER]
とキーを押す事で、結果が得られます。
例えば、自由度10で0.5から∞までの右裾の面積を求めるには、
10 [STO] [D] 0.5 [XEQ] [D] [ENTER]
と押します。「INTEGRATING」表示のあと少々の時間を掛けて、
0.31394680 (FIX 8)
という結果が得られます。
少々手間の掛かる事ではありますが、一応t分布の計算ができました。これを使えば、簡単なt検定の作業が出来ると思います。その例をPDFにて作成しました。右の文書置き場にあります。「t-dist.pdf」を見てチョ。(SkyDriveの方はlogin不要だと思います)
35Sでのt検定はそこそこ使えそうですが、t区間推定は実用にはなりそうもありません。区間推定となると「逆計算」なので、大変時間が掛かるものと思われます。それに、HP35SではSolvreと数値積分を同時には使えないという問題があります。
Solvre部分は自前でNewton Solvreをプログラムで組む方法がありそうですが、数値積分だけでも時間が掛かってしまうため、Solvreまで使うとなると、これはもうポンポンポン(きゃりーちゃんじゃないよ)と軽快にキーを叩いて答えを出すという訳にはいかない。参ったなァ。
区間推定の場合には、TI-83+やHP50gとか、より高機能な電卓を使うのが良さそうです。
HP35Sの数値積分能とプログラムを駆使して(?)、t検定をやってみました。統計の知識が別に入り用ですが、手頃な入門書は図書館にでも行って探してみて頂戴。
1. プログラム
D001 LBL D // プログラムスタート D002 0 // 積分下限 (0からXまで積分) D003 x<>y // 積分区間のスタック上の順番を交換 D004 FN= E // 積分する関数を指定 D005 intFN d X // 数値積分 D006 RCL D // D007 1 // D008 - // (df-1) D009 2 // D010 / // (df-1)/2 D011 ! // ((df-1)/2)! = gamma((df+1)/2) D012 * // D013 RCL D // D014 2 // D015 / // df/2 D016 1 // D017 - // (df/2-1) D018 ! // (df/2-1)! = gamma(df/2) D019 / // D020 pi // D021 RCL D // D022 * // D023 sqrt x // sqrt(pi*df) D024 / // D025 0.5 // D026 x<>y // D027 - // D028 RTN // E001 LBL E // 積分関数 E002 RCL X // X について積分を行うため、Xをスタックに置く E003 x^2 // E004 RCL D // E005 / // x^2/df E006 1 // E007 + // 1+x^2/df E008 RCL D // E009 1 // E010 + // df+1 E011 2 // E012 / // (df+1)/2 E013 +/- // -(df+1)/2 E014 y^x // (1+x^2/df) ^ (-(df+1)/2) E015 RTN //
2. プログラムの使い方
プログラム自体は、t分布の累積分布関数(cdf ; cumulative distribution function)について、xから∞までの範囲(=「右裾」)の値を返すものです。
あらかじめ、自由度dfをレジスタDに入れておき、スタックトップにxを置いておき、
[XEQ] D [ENTER]
とキーを押す事で、結果が得られます。
例えば、自由度10で0.5から∞までの右裾の面積を求めるには、
10 [STO] [D] 0.5 [XEQ] [D] [ENTER]
と押します。「INTEGRATING」表示のあと少々の時間を掛けて、
0.31394680 (FIX 8)
という結果が得られます。
少々手間の掛かる事ではありますが、一応t分布の計算ができました。これを使えば、簡単なt検定の作業が出来ると思います。その例をPDFにて作成しました。右の文書置き場にあります。「t-dist.pdf」を見てチョ。(SkyDriveの方はlogin不要だと思います)
35Sでのt検定はそこそこ使えそうですが、t区間推定は実用にはなりそうもありません。区間推定となると「逆計算」なので、大変時間が掛かるものと思われます。それに、HP35SではSolvreと数値積分を同時には使えないという問題があります。
Solvre部分は自前でNewton Solvreをプログラムで組む方法がありそうですが、数値積分だけでも時間が掛かってしまうため、Solvreまで使うとなると、これはもうポンポンポン(きゃりーちゃんじゃないよ)と軽快にキーを叩いて答えを出すという訳にはいかない。参ったなァ。
区間推定の場合には、TI-83+やHP50gとか、より高機能な電卓を使うのが良さそうです。
登録:
投稿 (Atom)