出典: フリー教科書『ウィキブックス(Wikibooks)』
計算機が発達した現代においても、暗算の重要性は変わらない。これは、暗算を高速に行うためのテクニック、速算術[1]についての教科書である。
桁区切り
通常の記法との関係
二乗
特殊な二乗
ここでは、桁区切り記号 | を用いた、通常の位取り記数法とは少し異なる記数法を用いる。まずはこの意味について述べる。
2 桁の数と 2 桁の数が桁区切り記号で区切られている場合は、桁区切り記号を省略してそのまま並べた数として読む。
![{\displaystyle 12\mid 34=1234}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d7836c5dbb7a34bc9d644aa61ec3b853896efb70)
左側が 1 桁の場合も同様である。
![{\displaystyle 5\mid 67=567}](https://wikimedia.org/api/rest_v1/media/math/render/svg/79d2df5fccd7d5ef0480fb780e0d21a8bee2d469)
右側が 1 桁の場合、0 を補って読む。
![{\displaystyle 8\mid 9=809}](https://wikimedia.org/api/rest_v1/media/math/render/svg/ed24bf013a523ab288c6c014de25dabc0bf002ba)
通常の記数法と似た記数法なので、計算はそれぞれの区切りの中で行うことができる。
![{\displaystyle {\begin{aligned}12\mid 3+45&=12\mid 48\\&=1248\\\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c917407673167a4f8e449a8a092a795a79fcb626)
区切りが 2 桁の場合、計算の途中で 3 桁目以上が生じたときは桁上がりする。
![{\displaystyle {\begin{aligned}6\mid ((7+8)\times 9)&=6\mid 135\\&=735\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c079ac70f761b49ee36967e291ab9a6dfd3639d3)
ただし次のような例には注意が必要である。
![{\displaystyle {\begin{aligned}(12\mid 3)-(32\mid 1)&=(12-32)\mid (3-1)\\&=(-20)\mid 2\\&=-(19\mid 98)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/e98b002ce4cae5e70d33f80d754f1ea11de0a0fc)
上述した例と同じように、10000 かそれ以上の大きさの数について、区切りを増やすことで対応することができる。
![{\displaystyle {\begin{aligned}12\mid 34\mid 56&=123456\\~7\mid ~8\mid ~9&=~70809\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/11bed7201e3bd1ff67e2b0421cbfd47722c6ba87)
区切りが 3 つ以上になる場合についても同様である。
上記の記法は通常の記法と以下のような対応がある。
![{\displaystyle {\begin{aligned}12\mid 34&=12\times 100+34&\quad (=1234)\\~5\mid 67&=~5\times 100+67&\quad (=~567)\\~8\mid ~9&=~8\times 100+~9&\quad (=~809)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/dee72a176f479f50cb699eab42e5ee0395d8bdf6)
より一般的にそれぞれの桁にかかる数を
とすれば上記の関係は以下の形に集約される。
![{\displaystyle a\mid b=a\times 100+b.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/b224b9ff663cedec20c9854eddd70cc5220e84be)
区切りが複数重なる場合についても同様で
![{\displaystyle a\mid b\mid c=(a\times 100+b)\times 100+c=a\times 10000+b\times 100+c}](https://wikimedia.org/api/rest_v1/media/math/render/svg/f1562010a79fba46e2ce58154d9089e4a752931c)
という風に書き換えることができる。この例から明らかなように、通常の計算で間違えることはまずないが、連続する区切り記号の解釈については以下の規約がある。
![{\displaystyle a\mid b\mid c\equiv (a\mid b)\mid c.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c2a615f0717c559252bd29646522306dab0727f9)
言い換えると、桁区切りの展開は最上位の桁から最下位の桁へ順番に行う必要がある。
加算および減算については以下の関係が成り立つ。
![{\displaystyle {\begin{aligned}(a\mid b)+(c\mid d)&=(a+c)\mid (b+d)\\(a\mid b)-(c\mid d)&=(a-c)\mid (b-d)\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/d0b62de87f8e5f4078910bb4fc60bf400a3e30fb)
乗算については以下の関係が成り立つ。
![{\displaystyle (a\mid b)\times (c\mid d)=ac\mid (bc+ad)\mid bd.}](https://wikimedia.org/api/rest_v1/media/math/render/svg/2671c8738fddeac4b50968160da65ed73a1ea7f3)
まず、数の2乗を簡単に計算するためのテクニックを述べる。
100に近い数の2乗は次のようにして簡単に計算できる。
![{\displaystyle {\begin{array}{rll}97^{2}&=(97-(100-97))&\mid (100-97)^{2}\\&=94&\mid 9\\&=9409\\\end{array}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/7313a3f13ed4f505a5dee8c46c44df0d14851439)
![{\displaystyle {\begin{array}{rll}94^{2}&=(94-(100-94))&\mid (100-94)^{2}\\&=88&\mid 36\\&=8836\\\end{array}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/779ef33528c9caab981a27f8b35b66e76232a500)
![{\displaystyle {\begin{array}{rll}103^{2}&=(103-(100-103))&\mid (100-103)^{2}\\&=106&\mid 9\\&=10609\\\end{array}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/c0872530add618c38eced2969d1fb645702841cf)
- (説明)
2 乗したい数を
とする。展開・因数分解の公式
![{\displaystyle a^{2}-b^{2}=(a+b)(a-b)}](https://wikimedia.org/api/rest_v1/media/math/render/svg/5d52e4cff7a7157a34586d9a29df412a7d37f574)
に
を代入すると、
![{\displaystyle {\begin{aligned}x^{2}-(100-x)^{2}&=100(x-(100-x))\\x^{2}&=100(x-(100-x))+(100-x)^{2}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/16079cfbe78a0720de1b0a0eb90bbce23d121f01)
これを桁区切りの記数法で表したのが、上で述べた計算法である。桁区切りを用いた場合、上記の計算は次のように表される。
![{\displaystyle {\begin{aligned}x^{2}-(1\mid 0-x)^{2}&=(x-(1\mid 0-x))|0\\x^{2}&=(x-(100-x))|(100-x)^{2}\end{aligned}}}](https://wikimedia.org/api/rest_v1/media/math/render/svg/cbbf16c4ca4ca24f4f56a15a23e060030de95b52)
- ^ 速算法ともいう。