Add Styleでの計算原理の考案

足し算はできない

今までに計算尺を使ったことのある人は、「計算尺では足し算・引き算をすることができない」ということをご存知だと思います。

しかし、できないと言われれば、なんとかして足し算・引き算をやってみたいと思うものです。そこで、このページからでは、計算尺を使って足し算・引き算をしてみたいと思います。

しかし、普通の計算尺では足し算・引き算はできないので、「足し算・引き算専用の計算尺」を利用して足し算・引き算をしてみたいと思います。

計算尺での掛け算の原理

「足し算・引き算専用の計算尺」を作成したいのですが、まず、普通の計算尺の掛け算の原理を見てみましょう。

どの計算尺にも、固定尺の下側にはD尺が、滑尺にはC尺があります。これらの基線を合わせてよく見てみると、実は同じメモリであるということが分かります。

計算尺の掛け算のページでも紹介しましたが、実は、これらC尺やD尺は、log(x)という式によってメモリが刻まれています。つまり、1≦x≦10のxについて、xというメモリは計算尺の尺の長さのlog(x)倍の位置にメモリが刻まれているのです。

従って、D尺でlog(x)の距離をとり、C尺でlog(y)の距離をとって、D尺で目盛りを読めば、log(x) + log(y) = log(xy)となるので、掛け算xyの答えを求めることができます。

計算尺での足し算の原理

上の掛け算の原理を見ると、log(x)でメモリを振るのではなくて、xでメモリを振れば、足し算をすることができそうです。

つまり、D尺でxの距離をとり、C尺でyの距離をとって、D尺で目盛りを読めば、x+yとなるので、足し算の答えを求めることができます。

当然と言えば、当然のことです。

以上のことから、従来の計算尺ではlog(x)の式に基づいて作成していた尺を、xの式に基づいて作成する、つまり等間隔にメモリを作成すれば、足し算をする計算尺を作成することができそうです。

また、足し算と引き算は逆の計算ですので、掛け算のできる計算尺で割り算ができたように、足し算ができる計算尺では引き算もできるはずです。それは、すぐ上の図をご覧頂いてもすぐ分かります。

尺の範囲

普通の計算尺のD尺のメモリは1から10でした。

それでは、足し算を行う計算尺では、どの範囲の尺を準備するべきでしょうか。

それにはいくつかの候補が考えられます。

普通の計算尺では、10までメモリが振ってありますから、足し算を行う計算尺でも10までのメモリを書こうというのが前者の意味です。

それに対して、後者はどういう意味かというと、計算尺の作成の原理に基づいたものです。そもそも計算尺を作成する際、メモリを書くわけですが、メモリを書くときには、「尺の長さに対してどの割合の位置にメモリを書く」ということを計算してメモリを書いていきます。例えば、「2」というメモリは、「log(2)=0.3010」の割合の位置に書き、特に25cmの計算尺では、左の基線から「25×log(2)」の位置にメモリを書きます。

計算尺を作成する際に登場する割合と言うのは、当然0~1の範囲です。このことから、足し算を行う計算尺には0~1までのメモリを書こうというのが後者の主張です。

どちらを選ぶかはセンスの問題ですが、ここでは後者を選びたいと思います。

もう1つ疑問が残ります。なぜ0からスタートするのでしょうか。ここでは0~1に決めましたが、掛け算を行う計算尺のように1からスタートする1~10ではいけないのでしょうか。

まず、普通の計算尺で考えてみたいと思います。

このように対数でメモリが作成された尺の場合、メモリ1を10と読む場合、他のメモリは20, 30, …, 100と読むようになります。この場合、メモリ1を10と読みましたが、この10と言うのはそのままのメモリで読んだ場合、D尺の一番右側にあります。

また、メモリ1を0.1と読む場合、他のメモリは0.2, 0.3, …, 1.0と読むことになります。この場合、メモリ10を1.0と読みましたが、この1.0と言うのはそのままのメモリで読んだ場合、D尺の一番左側にあります。

つまり、位取りを変えて計算尺のメモリを読むと言う行為は、そのままのメモリで読んだ尺(1~10)には存在しないその両端に位置する尺(0.1~1や10~100)だと思ってメモリを読むということです。言い換えれば、無限に伸びるlog(x)で振られた計算尺の尺を、…, 0.1~1.0, 1.0~10, 10~100, 100~1000, …と分割し、そのうち1.0~10が代表して計算尺の尺として書かれているのです。

それでは、xでメモリが振られた、つまり等間隔にメモリが振られた計算尺の場合はどうなるでしょうか。

等間隔に振られたメモリの場合、分割は、0~1, 1~2, 2~3, …となります。掛け算を行う計算尺では位を変える(つまり10のなんとか乗を掛ける)作業に当るものが、足し算を行う計算尺では整数を足す作業になるのです。このことから、足し算を行う計算尺では0からメモリを振る必要があるのです。

足し算を行う計算尺プログラム「計算尺 Add Style」

世の中を探しても、足し算を行う計算尺はおそらく出回っていないでしょう。そこで、足し算を行う計算尺のプログラムを作成しました。「計算尺 Add Style」といいます。具体的なことは「計算尺 Add Style」のページをご覧ください。