ブログトップ

電子工作やってみたよ

前回の続きで雑誌ニュートンの2018年2月号「美しき無限の数式」特集のπ(pai)に関するもの HP電卓を使って遊んでみます。
今度は HP42S を使いました。
理由はHP42Sは 2行表示なので何項目かの表示とそこまでの積算値が一度に表示できるからです。


c0335218_19244143.jpg

このページには4個の式が載っていますがまずは一番上のだけやってみます。
HP42Sのプログラムリストです。

------------------------------

01 LBL "AA" * イニシャライズスタート
02 0 *
03 STO "B" * 分母の値 1,2,3 - - 初期値をセット 1
04 STO "A" * 積算合計値 - - - - の初期値をセット 1

05 LBL "BB" *ループ計算の先頭ラベル
06 1 *
07 STO+”B” *分母に1を加算する
08 RCL ”B" *加算した分母を呼込む
09 X^2 *分母X^2乗の計算
10 ÷ *分子割る分母
11 STO+ "A" *累積値に1/(X^2)を加算する
12 RCL "B" *項のNoをYレジに表示
13 RCL "A" *ここまでの累積合計値をXレジに表示
14 R/S  *ストップしてここまでの累積値を表示
15 GTO "BB" *ループヘッドへ戻り計算を繰り返す


これを N88BASICで書いてみると、以下のようになります。

100 A=0:B=0
200 '
210 B = B + 1
220 A = A + 1/(B^2)
230 PRINT B,A
240 GOTO 200
ごく簡単なプログラムになりますね。

このページ一番上の式の左辺 
(π^2)/6を計算すると1.64493406685となります。
右辺をプログラムまわして計算するとどんどんこの値に近づいていきます。

しかし 不思議ですね こんなきれいな数列を計算していくと円とは全く関係なさそうなのに円周率が答えになってくるなんて。
そして 昔の人は、電卓や計算機など無い時代にどのようにしてこれを確かめたのでしょうか。



by telmic-gunma | 2018-01-21 22:10 | HP電卓 | Trackback | Comments(0)

HP電卓を操作しやすくするために、写真のような台を発砲スチロールで作って見ました。
HP電卓の液晶画面は見る角度があまり斜めになると数字以外の記号などが表れて見ずらくなるのですが、
すこし角度を付けてやると見やすくなり且つキー操作もやりやすくなりました。

c0335218_18194215.jpg
さて 本題はこれではありません。
山梨にいる友達から以下のプログラムコンテストのチラシをもらいました。

c0335218_18183228.jpg

コンピュータ言語は C, Java, VBA から選択となっていました。賞金は20万円 
裏にサンプルプの問題が載っていました。

c0335218_18190557.jpg
本番にでる気はありませんが、この問題ならそんなにメモリーも必要とせずHP電卓で解くにはちょうどいいのでないかと思い挑戦してみました。
答えを先に言ってしまうと

きつね蕎麦  286
山菜蕎麦     3
鴨南蛮蕎麦   12

計算は数の大きい方からスキャンしていき答えも大きい方にあったので、計算時間はHP32Sで5分ほどだったと思います。
片手間に農作業をやりながらの製作で一日半かかりました。 こんなに時間かかってはコンテスト参加は無理ですね。
CやVBAなど他の言語で作ればもっと早く出来ると思いますが、やはりHP電卓でやるところに意味があると思います。( なぜなら わたしはHP電卓のファンだから ただそれだけですけど )
最初は連立方程式を作れば解けると思っていたのですが、やはりプログラムで一つづつ値を変えながら試すしか方法が無いようです。
それなりに苦労をした結果を載せてみます。


全プログラムリスト (HP32S を使用)


A01 LBL A
A02 RCL E 全合計目標金額
A03 RCL X  きつね蕎麦の単価
A04 ÷    きつね蕎麦での最大皿数
A05 LP (INTのこと)  整数部のみ取り出す
A06 STO A  きつね蕎麦での全皿数をしまう

B01 LBL B
B02 1
B03 STO -A きつね蕎麦の全皿数を一つ減らす
B04 XEQ C  この状態で山菜蕎麦と鴨南蛮蕎麦の数を計算する
B05 RCL A きつね蕎麦の数を読み込む
B06 PSE 現在計算中のきつね蕎麦の数を表示
B07 GTO B 次の数のきつね蕎麦を計算

C01 LBL C
C02 RCL A きつね蕎麦の数
C03 RCL X きつね蕎麦の単価
C04 X きつね蕎麦の合計金額
C05 RCL E 全合計金額目標
C06 X<>Y 全合計金額目標ときつね蕎麦の合計金額の比較
C07 -   きつね蕎麦の残金
C08 STO F きつね蕎麦の残金
C09 RCL Y 山菜蕎麦の単価
C10 ÷   山菜蕎麦の数
C11 IP (INTのこと) 整数部のみ
C12 STO B 山菜蕎麦の数

R01 LBL R
R02 RCL B 山菜蕎麦の数
R03 RCL Y 山菜蕎麦の単価
R04 ✖   山菜蕎麦の全額
R05 RCL F きつね蕎麦の残金
R06 X<>Y きつね蕎麦の残金ときつね蕎麦の残金の比較
R07 -   山菜蕎麦、きつね蕎麦の残金
R08 STO G
R09 RCL Z 鴨南蛮蕎麦の単価
R10 ÷   鴨南蛮蕎麦の単価で割る
R11 STO C
R12 FP (FRACのこと)少数点以下を取り出す
R13 X=0 ? 鴨南蛮蕎麦の単価で割り切れるか
R14 STOP 割り切れたら終了
R15 1
R16 STO -B 山菜蕎麦を一つ減らす
R17 RCL B  山菜蕎麦の数を読み込む。
R18 X キ 0 ? 山菜蕎麦の残数がゼロでないか
R19 GTO R  ゼロでないなら減らした山菜蕎麦で計算しなおす
R20 RTN   ゼロならばきつね蕎麦の数を減らして計算をやり直す


変数表
A きつね蕎麦の数
B 山菜蕎麦の数
C 鴨南蛮の数
D
E 全合計目標値 ( 200,000 ) 初期値入力しておく
F きつね蕎麦の残金
G きつね蕎麦と山菜蕎麦を取ったあとの残金
L ループ表示カウンター
X きつね蕎麦の単価 ( 650 ) 初期値入力しておく
Y 山菜蕎麦の単価  ( 780 ) 初期値入力しておく
Z 鴨南蛮の単価   ( 980 ) 初期値入力しておく

これで終わりです。


それなりにある程度頑張れば出来るという、このくらいの問題が丁度いいですね。
ちょうどバズルを解く楽しみなんでしょうか。
そうそう 今回この問題が解けた理由がまだありました。
一週間以内に解けなければ一杯おごると約束をしたからです。
私が何か行動を起こすには、適度なプレッシャーが必要みたいです。
べつに解けない方でも良いのですけれどね。


次 現在の畑の状況です。
白菜は一個50円の苗を20個買ってきて植えて19個が大きく育ちました。

c0335218_21164680.jpg


チンゲン菜は 種をまきすぎたので一杯生えすぎました。 間引きながら食べてます。
やはり 種をまくときに計算しておかないといけないのですね。
チンゲン菜 二度目だと思うのですが、なかなか学べないです。

c0335218_21173644.jpg










by telmic-gunma | 2017-10-09 21:30 | HP電卓 | Trackback | Comments(2)