IT・技術研修ならCTC教育サービス

サイト内検索 企業情報 サイトマップ

研修コース検索

コラム

仮想化の歴史と機能

CTC 教育サービス

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes 

第32回 割り勘とネットマスクの暗算 (志茂吉建) 2014年10月

 今回は仮想化とは少し違うお話をしたいと思います。暗算のお話です。

 最近はスマフォや携帯に計算機がついているので、飲み会のお会計の時にすぐに計算機で割り勘の計算をすることができます。でも、計算機のアプリを呼び出すより速く暗算で割り勘の金額がわかれば便利ですよね。私は、ソロバンなんかは小学校以来やっていませんので、エアーソロバンで計算したりはできません。でも、ちょっとしたコツがあるのではないかと考えています。

1から10までの合計を出すには

 答えは一瞬です。55となります。1から100でも同じです。5050です。理屈は以下の通り。
1+2+3+...+8+9+10でそのまま計算してもかまいませんが、時間ばかりかかります。少し工夫すると以下の計算式に置きかえられます。

(1+10)+(2+9)+...+(5+6) = 11 * 5 = 55

同じように考えると1から100までの合計も同じですね。

(1+100)+(2+99)+...+(50*51) = 101 * 50 = 5050

一種のアルゴリズムを使って計算しています。このようにすると簡単に素早く計算できます。

割り勘の暗算

 この前飲み会で4人で11038円がお会計でした。一人あたり、約2,760円となります。暗算のアルゴリズムは以下の通りです。

10000 / 4 + 1000 / 4 + 38 / 4 = 2500 + 250 + 約10 = 約2760

 これであれば、複雑な割り算をやらなくても計算できます。100 / 4 = 25 というのは、比較的すぐに出てきますので、これをもとに計算したら以上のようなアルゴリズムになりました。九九は暗記しているとして、11 * 11 = 121、12 * 12 = 144、13 * 13 = 169, 14 * 14 = 196, 15 * 15 = 225, 16 * 16 = 256なども合わせて暗記しています。数字を暗記しているものに置き換えて計算すると比較的すぐに暗算できます。もちろん、そろばんの達人にはかないませんが(^_^);

ネットマスクの計算

 VDI 環境のソフトウェアにもよりますが、ネットワークの管理を効率的に行うために、255より大きい1000程度のホストを収められるアドレス体系を使って設計するケースが少なくありません。2進数と10進数の暗算方法になれていると簡単にネットマスクを計算することができます。

 1セグメントに1000台ほどのパソコンをつなげたいとなるとネットマスクはどうなるでしょうか。24ビットマスクつまり 255.255.255.0 であれば、約250台のホストを同一セグメントに収めることができます。1000は250の4倍となりますから、アドレス部分を4倍することになり、ネットマスクは2ビット分減ります。255.255.255.0が255.255.252となります。こんな風に計算すると計算機は必要ないですね。計算のアルゴリズムは以下の通り。

255.255.255.0 = 0b11111111.0b11111111.0b11111111.0b00000000
255.255.252.0 = 0b11111111.0b11111111.0b11111100.0b00000000

3オクテットめの2ビットが動けるようになればいいので0x11 = 3、ネットマスクの3オクテットめは255-3で252となる。

 こつは指を使って計算することです。例えば、0x1111なら4本の指で計算できます。(1 * 2 ^ 3) + (1 * 2 ^2 + 1) + (1 * 2^1) + (1 * 2^0) = 15 = 0xfとなります。4本目は8、2本目は4、3本目は2、1本目は1で1の時はそのまま足して、0の時は0で計算すればすぐに出てきます。10本指がありますので0から2^10-1まで計算できますね。

まとめ

 私なりの暗算のコツとアルゴリズムをご紹介させていただきました。皆さんも自分の暗算アルゴリズムを考えてみてはいかがでしょうか。何か新しい発見があるかもしれません。

 


 

 [IT研修]注目キーワード   Python  UiPath(RPA)  最新技術動向  Microsoft Azure  Docker  Kubernetes