2017年11月14日火曜日

Mercedes Euklid

前回のこのブログでは, Mercedes Euklid Model 1の使い方の説明をしたが, 今回は演算機構の中心とでもいうべき比例梃子の話しをしたい.

この下がインターネットから拾ってきた比例梃子の原理図である. 中央に横向きに並んだ0番から9番の10本のラックレールが見える. この図では手前へ1,2,3,...,9が順に右へ移動しているが,定常状態では, 10本全部の左右が同じ位置に揃っている.





左の方, ラックの下に丸に2番と丸に5番とある斜めに描かれた板が, 比例梃子で, これも定常状態では下の端が丸に11番に位置にある.

図の上部に6個の10歯の結果レジスタの歯車があることから判るように, この図は6桁の計算機になっている. その各桁に足すべき数が, 歯車の上にある8,0,5,9,6,2で, その各桁の下の方にラックと噛んでいる歯車がある. 8ならその歯車は8番のラックに乘っている.

最左端の桁に8を足すとき, 右に見えるモーターが半回転し, それに連結した棒が右端に移動することにより, 比例梃子が11の位置から5の位置へ移動する. それに従って, それぞれのラックは, その番号の歯数だけ右へ移動する. つまり8番のラックは8単位だけ移動し, その上の歯車は8だけ回転し, その桁に8が足されるのである.

図では比例梃子が右へ移動しきった時を示すので, すべてのラックの歯が縱方向に見ると揃っているのがわかる. 左端のずれも隣とは1単位ずれている.

モーターが図の位置まで半回転して足し終わると, 右上のカップリングギアが開放され, さらにモーターが半回転し, ラックに乘る歯車が逆回転するが, 結果レジスタには影響はない.


比例梃子方式は引き算も簡単である. 足し算の時は, 比例梃子は0番のラックを中心にして回転したが, 引き算の時は, 9番のラックを中心にして回転する. モーターからの棒は, 4と5のラックの間で比例梃子に接続しているから, 今度は0番のラックが9歯移動し, n番のラックは9-nだけ移動することになり, つまり9の補数を足すことで引き算を実現している.

しかし, 補数の計算に委しい人は, 1だけ違う筈だとすぐに気付くに違いない. たしかにその通りで, mercedes euklidではその補正も組み込まれている. それにはもう1枚の図を見る必要がある.

下の図は比例梃子方式の全体図で, 横線の一番上のZ0が0番のラック, 一番下のZ9が9番のラックである. 縱線も何本がある. 中央に比例梃子がごちゃごちゃ描いてあるので分り難いが, 等間隔に縱線があるとすると, 縱の線は17本になる.




その内左の7本がAlで, 次の9本が添字なしのA, 右端の1本がArである. Aの線にはRと添えられた太い線分が見えるが, これがラックに乘る歯車である. つまり0から9の任意のラックに乗せることができ, その値だけ足すことができる.

さてAlとArにある太線が9の補数対策である. 足し算用の値数レジスタの範囲がAの9桁であるが, 値数レジスタの範囲を越えたAlの部分にも0番のラック上に歯車が用意してある. これは他のラックの上へ移動することはなく0番に固定である.

足し算の時は0のラックにあるから, これらの桁は何の影響も与えない. しかし9の補数による引き算の時は, 結果レジスタの範囲では値数レジスタの範囲を越えて繰上げを左端まで伝搬しなければならず, そのための9が並んでいるのである.

一方, Arにも0番のラックの上に太線が見える. よく見るとこれは0番のラックより上にずらせて描いてある. 実はここには0番のラックに貼り付いた特別なラックと歯車があり, 0番のラックが9歯だけ動くと, Arの軸は9/10回転ではなく, 1回転するようになっている.


その桁が1回転して繰り上がりが生じ, これが1の補正を行っている. なんとも巧妙な設計ではないか.

2017年11月9日木曜日

Mercedes Euklid

1905年にドイツで発売された, Mercedes Euklid Model 1という素敵な名前の機械式計算機があった. 自動車のメルセデスとは関係ないらしい.

タイガー計算機の修理や保守をされていた, 渡邊祐三さんの「美 機械式計算機の世界」にMercedes Euklid構造というページ(pp 68,69)があり, そこにこれは往復ラック方式であると書いていあった. 通常の説明書ではproportional leverだから比例梃子とでもいおうか. Mercedes Euklidの計算機はあまり知られていないが, 城憲三先生の「計算機械」の8,9ページにも簡單な記述がある.

なかなか面白そうな機械なので, この程そのシミュレータを作り, 感触を確かめることにした.

まずインターネットで見付たこの計算機の図である. 結構大きいものだ. これとよく似た計算機が, 東京理科大学の近代科学資料館にもあるが, それはタイガー計算機製となっている. それは実は電動化されたもので, Mercedes Euklid Model 7らしい.

この計算機(Modle 1), 巾が37cm, 奥行18cm, 高さ8cm, 重さ12Kg. 楔形の台に載っていて, 手前に傾いている. 手前の1/3くらいの上部がいわゆるキャリージで, 左右へ移動出来る.

インターネットを探すと, この計算機の シミュレータもあった. それが下だ.



上の方にOBENとあるのはoverのことで, 上から見た図である. 下のVORNEはfrontで, 正面図である. 灰色の薄い部分がキャリージに対応する. これはやってみるといちおう使えるけれども, 嬉しくないのはレジスタの数字が小さいことである. また数値の入力も面倒至極であった. というわけで自己流のシミュレータ(下図)を作った次第だ.



このシミュレータでは, 上の3/5くらいが本体, 下の2/5くらいがキャリージで, 右の方に余白があるが, そこはキャリージが動いていく場所である.

上の本体部分には, 9桁の置数レジスタMがある. 下のキャリージには, 16桁の結果レジスタP(Produktenzählwerkes)と, 8桁の回転数レジスQ(Quotientenaählwerkes)がある.

本物の計算機には, 本体側に置数レジスタに数をいれるスライダがあるが, 私のシミュレータではそういう入力法は面倒なので, 数値はキーボードから入れる.

上の本体部分の右上の円Kは, 本物の図にあるクランクハンドルのつもりである. Kと書いてある中央あたりのクリックが, ハンドルの右1回転に相当し, 加減算1回が出来る.

本体部分の左上には2個のスイッチ, ASとNCがある. ASは上に倒すとAdd Mulになり(つまりMの値がPに足され), 下に倒すとSub Divになる(Mの値がPから引かれる.) もう一方のNCのNはNormalstellung(標準状態), つまりKの1回転でQが1増え, Cは(Controlの略らしいが), Kの1回転でQが1減る.

キャリージ部分には, 左下にAEスイッチがあるが, この使用法は後述する.

このシミュレータのキャリージ下部の両端にあるLとRの矢印は, ここのクリックで, キャリージが左や右へ移動する.

Pの結果レジスタは通常の機械式計算機では, 直接数値の入力は出来ないが, Mercedes Euklidでは, 上の写真に見えるつまみ状のもので直接に入力出来る. 従って私のシミュレータでもキーボードから数値が入れられる.

M, P, Qの矢印は, それをクリックするとレジスタが零にリセット出来る. さらにMとPとでは, 矢印が黒い間はキーボードで打った数字が右から送り込まれる. MとPでは, レジスタの箱をクリックすると, 箱が黒くなり, キーボードからその桁に数字が入力できる. 負数は入力出来ない(負数は存在しない).

以下が基本的な使い方である.

加減算

加減算には置数レジスタMと結果レジスタPを使う. 例えば123+456なら, 左上のASスイッチをA(Addition)にし(クリックする度にAとSが切り替わる.) P矢印を2回クリックしてPレジスタをリセットする. (クリックが1回だと, Pが入力モードになったままである.)

次にM矢印をクリックして入力モードにし, キーボードから123を入れ, Mを再びクリックして入力モードから脱出し, Kのハンドルをクリック, 加算を1回行う.

もう1度Mに456を入れ, Kをクリックすると, 結果レジスタに和579が出来る.

ハンドルを回す度にQレジスタの内容も変化するが, いまは関係ないので無視しよう.

減算も同様だが, ASスイッチをS側にしておく. こういう計算機には負数というものはない. 引いた結果が負になると, 結果レジスタが16桁なので, 1016の補数表示になる. 例えば結果レジスタを0にしておき, 1を引くと, 結果レジスタは9999999999999999になる. 最上位まで繰下げが伝わるのは驚きである. タイガー計算機やBrunsvigaなどOdhner型の計算機では, 繰上げ, 繰下げは途中で止まってしまう.

乗除算

123を3倍したければ, 置数レジスタに123を置き, 結果レジスタをリセットし, ハンドルkを3回クリックする. 23倍したければクリックを23回やってもよいが, キャリージを右に1桁移動し, 置数レジスタが結果レジスタの10の桁に足せるようにして, 10の桁で2回足す. 乗算の積は結果レジスタに出る. 結果レジスタがPという名前なのは, (Product)だからであろう.

何回足したかわかるように, 回転数レジスタがある. キャリージがどの位置にあっても, 置数レジスタの1の位置に対応する回転数レジスタの桁で, NCスイッチがNの時は1が足され, Cの時は1が引かれる. その際, 回転数レジスタ内でも繰上げや繰下げは最上位まで正しく処理される.

従って通常の乗算の時は, ASスイッチはA, NCスイッチはNにしておく.

除算では, 披除数を結果レジスタに, 除数を置数レジスタに置き, キャリージで引く位置を調整しながら, 引き算を繰り返す. (見た目は悪いが, 結果レジスタに披除数が直接入れられるのは, 非常に便利である. 引いた回数が商になるから, NCスイッチはCにする.

披除数の最上位と除数の最上位の位置が合うようにキャリージを合わせ, 筆算でやるように, 各桁で引けなくなるまで, つまり結果レジスタ≤置数レジスタになるまで引き算を繰り返す. 商は回転数レジスタに得られる. このレジスタがQなのは, ここに商(Quotient)が出るからであろう.

短絡乗算

ある桁の乗数が8とか9とか大きい時は, 8回や9回まわすのではなく, 上の桁を1回多く足しておき, この桁では2回か1回引くことで済ませられる.

例えば256×4096なら, Mに256を置き, 3桁右シフト. 切替スイッチをAとNにして4回(4000倍を足した), 1桁左シフト, 1回(100倍を足した), 2桁左シフト, 切替スイッチをSとCにして4回まわす(4倍を引いた). この時, Qレジスタは4096, Pレジスタは1048576(=2^20)になっている.

自動除算

Mercedes Euklidは除算を容易にするために考案されたといってもいいような計算機であった. 例として1048576を144で割ることを考えよう. この除算の商は7281, 剰余は112である.

Pレジスタに1048576, Mレジスタに144を置く.

1048の下に144が來るようにキャリージを右3桁シフト.
SNにして負になるまで回転. 8回で Pレジスタは999...896576で負になり, Qレジスタは8000になる. この様子を下に示す.
Mercedes Euklidでは, 加減算の後, 結果レジスタが正から負, または負から正へ変化すると, ハンドルが固定され回転できない仕掛けyになっている. ー計算器ではベルがなるだけであったが, Mercedes Euklidではハンドル動かなくなることで,いわゆる引放し除算を実現している.



Mercedes Euklidにはさらに工夫があり, キャリージを右シフトした時に内部でスプリングを卷きあげ, 左シフトの時はラッチを外すだけで, スプリングの力で移動する. またAEスイッチをEの側にしておくと, キャリージが動くと同時にA/S, N/Cが反転する. Youtubeに除算をしている動画がある. この速さ除算が出来るのは見事というしかない. ただ白状すれば, どこでラッチを外しているか, 私にはよく判っていない.