精度の良い2桁×2桁の暗算方法(いわゆるインド式の発展形)の提案


インド式計算方法が話題になって久しいですが、インド式を改良してもう少しやりやすくした方法を提案したいと思います。

(MathJaxを使用しているので計算式の部分の表示が遅延しますが、仕様ですので画面の前でしばらくお待ちください)

1.計算の背景と原理

2桁の正の整数xとy[1]

\[
\left\{ \begin{array}{ll}
x=10a+b & (1\leq a,b \leq 9) \\
y=10c+d & (1\leq c,d \leq 9)
\end{array} \right.
\]

があったとするとx、yの積f(x,y)は二項展開を用いて
$$f(x, y)=xy= 100 \times ac + 10 \times (bc+ad) + 1 \times bd$$

と表せる。ここでbdは1桁または2桁の正の整数であるが、桁上がりを考慮するためにdiv(整数除算の商)とmod(整数除算の余り)演算子を用いるとbdは
$$ bd = ( bd\ \mathrm{div}\ 10)+ (bd\ \mathrm{mod}\ 10) $$
と書けるので

$$f(x, y)=100 \times ac + 10 \times [bc + ad + ( bd\ \mathrm{div}\ 10)] + 1 \times [bd\ \mathrm{mod}\ 10] $$
となる。これにより一の位を確定することができた。
同様に十の位も1桁の整数に確定したいので[2]、更にdiv 10とmod 10を用いると

$$ f(x,y) = 100 \times[ac +\{(bc + ad + ( bd \ \mathrm{div} \ 10)) \ \mathrm{div} \ 10\}] $$
$$ + 10 \times [\{bc + ad + ( bd \ \mathrm{div} \ 10)\} \ \mathrm{mod} \ 10 ] + 1 \times [bd \ \mathrm{mod} \ 10]$$

と表せる。ここで、100倍の項が上1桁または2桁、10倍の項が十の位、1倍の項が一の位に当たる。

2.上式を用いた積の具体的な算出方法

以下で具体的な数値や手順を用いて各項の計算方法および答えの出し方を説明する。

Q. 27 × 39 はいくつですか?

手順と答え.

・7×9=63なので、両手で6を表しておく(bd div 10)
・7×3+2×9を計算する。39ですね。(bc+ad)
・39に手で示しといた6を足す。45ですね。(bc + ad + bd div 10)
・手で5(45の下一桁)を示しておく((bc + ad + bd div 10) mod 10)[3]
・2×3+4を計算する。4は45の十の位。よって10ですね。(ac +(bc + ad + bd div 10) div 10 )
・答えの上2桁は10、十の位は5(手で表している)
・一の位は7×9の下一桁、すなわち3

答え 1053

10回以上試したが、なかなか精度が良い

3.2018年6月22日に思ったこと

LaTexが崩れていたので書き直して、ついでに大幅改定しました。5年前より衰えたせいか、脳が関数電卓を欲しております。だがこういう暗算方法もあるよなと改めて思ったので誰かピンときたら使ってあげてください。

中華電信(台湾)のプリペイドSIMに日本からチャージする方法

毎度おなじみ、台湾大好きな日本人ソラオチです。

台湾でのメインバンクは兆豊銀行(経緯)、回線は中華電信のプリペイドSIM(商品名=如意卡, IDEAL CARD)を使っております(経緯)。

兆豊銀行は口座さえ開いてしまえば放っておいても平気なのですが、中華電信のプリペイドSIMは最終チャージ日から180日で失効してしまいます。
失効させるとチャージしていた残高が没収になる上に、前にもらった電話番号が使えなくなってしまいます。空港にある中華電信服務中心で再発行の手続きをしてもらえばいいのですが、番号が変わるし何かと面倒です。
それに、有効なSIMとチャージさえあれば、桃園空港からバスに乗ってる間に自分でSIMを差し替えてデータ通信を再開という器用なことができます。中華電信服務中心の営業時間を気にしないで済むうえに空港での滞在時間も節約と、なかなかスマートですね。

そういうわけで、日本から中華電信のプリペイドSIMにリチャージする方法を説明します。

1. 台湾で中華電信のプリペイドカード(儲值卡, Recharge Voucher)を買っておく。これです↓

どれも1枚300元なのですが、台北市中で買ったものには80元の無料通話が付いてました。無料通話が付いていないものは、桃園空港で買ったものです。
裏面に12桁のリチャージ番号が書いてあります。スクラッチ式です。
日本から買うのは困難なようです。いっぱい買ってきて楽天オークションに出品しようかな、良心的な値段で。

2. 日本から「010-886-928-000-928」に電話する。国際電話なので注意。

3. 繋がったら「3」を押すと日本語ガイダンスになる。最初に入力するのは中華電信の電話番号です。リチャージカードの12ケタの番号ではありません。 ((何度もリチャージカードの12ケタを入力して、エラーで弾かれてました。台湾の友人に依頼してやってもらってもダメだったので詳しくググったところ、上記参考サイトを発見いたしました。これは明らかに中華電信の説明の仕方が悪いと思う。とにかく、参考サイトのkiyopさん多謝多謝))

4. 暗証番号は「0000」です。多分。

5. リチャージカードの12ケタの番号を入力して完了

これで有効期限が180日延長されます。チャージした300元は、後日データ通信の定額料等に使えます。

参考サイト 台湾-中華電信のプリペイドSIMに日本からリチャージ