見出し画像

連載記事(2014中)

天秤ばかりのおもりは、なぜ2進法なのか?

(2014年8月 68号)

 天秤ばかりでは,1g , 2g ,(ア)g ,(イ)gの4つのおもりがあれば,1gから(ウ)gまでの重さを1g単位で測ることができる。その訳は,「1 , 2 ,(ア),(イ)の4つの数を2進数で表すとそれぞれ1 , 10 , 100 , 1000となって,その4つの和で2進数の1から1111までのすべての自然数を作れる」からである。
 では,ここで次の問題を考えてみよう。
◇ 1gから120gまでの重さを1g単位で測るには,おもりは最低で何個必要か?
 上の考え方をすれば,「(エ)個」といえる。
 ところで,実を言うと,もっと少ない個数でもできるのである。というのは,上に書いたのは「おもりを片方の皿に乗せる」場合の話であって,「おもりを両方の皿に乗せてもよい」なら,数え方は変わってくる。
 たとえば,1gのおもりを右の皿に,3g のおもりを左の皿に乗せれば,右の皿に2gの物を乗せたときに天秤は釣り合う。つまり,1gのおもりと3gのおもりで2gの重さを測れることになる。もちろん1gのおもりと3gのおもりを同じ側の皿に乗せれば 4gの重さを測れる。この考え方をさらに進めていくと,「1g , 3g ,(オ)g ,(カ)g ,(キ)gの5個のおもりで1gから120gまで1g単位で測れる」ことになる。

 では,<解説・解答>といきましょう。
 前半は基本問題です。答えは「ア4 イ8 ウ15 エ7」です。説明は省略します。
 おもしろいのは後半です。問題文に書いたように,「1gと3gのおもりで1gから4gまで1g単位で測れます」が,次に必要なのは何gのおもりでしょうか。5gのおもりではありません。要するに,差が5gになればいいのですから,次に必要なのは9gのおもりです。右の皿に1gと3gの2つのおもりを乗せ,左の皿に9gのおもりを乗せれば,5gを測れますね。そしてこのとき「1gと3gと9gのおもりで1gから13gまで1g単位で測れる」ことになります(←ちょっと確認してみてください)。
 この考え方を進めていくと,その次に必要なおもりは27g,そのまた次に必要なおもりは81gとなります。そしてこのとき「1g , 3g , 9g , 27g , 81gの5つのおもりで1gから120gまで1g単位で測れる」ことになります。というわけで,答えは「オ9 カ27 キ81」です。
 みなさん,もうお気づきですね。おもりを片方の皿に乗せる場合は「2のn乗」gのおもりを用意すればよいのに対して,おもりを両方の皿に乗せてよいなら「3のn乗」gのおもりを用意すればよいということです。
 天秤ばかりのおもりは,なぜ2進法なのか? いえいえ,3進法でもいいんです。

辞書式攻撃でパスワードを破れるか?

(2014年9月 69号)

 これまでに2回,「2のn乗のザックリ計算」を扱いましたが,この計算は情報科で学習する他の分野と絡めて使うことともできます。今回は「セキュリティ」と絡めて試験に出した問題を紹介します。

○ アルファベット(26文字)の大文字・小文字と数字の10文字と記号2つ(+と*など)をあわせると64(=2の6乗)文字になる。
 これら64種類の文字を6個並べてパスワードを作る場合を考えよう。
 数学の時間に学習した指数法則を使うと,異なる場合の数は2の(ア)乗通りとなる。
 次に情報の時間に学習したザックリ計算を使うと,この値は約(イ)億通りとなる。
 さて,パスワードを破るために,それらの文字列を順番に入力することを想定しよう。
 コンピュータを使って1秒間に1000通りを試みるとして,また1年=3千2百万秒として計算すると,上記の全ての場合を試みるのに約(ウ)年かかる。

 「2のn乗のザックリ計算」を扱うのはこれで3度目ですが,ここでもう一度,前とは少し違った説明をしてみます。2の10乗は正確には1,024ですが,ザックリ「2の10乗=1,000」とします。なお,1,000は欧米流に言うとキロ(K)です。このとき,2の20乗=メガ(M)=百万,2の30乗=ギガ(G)=十億,2の40乗=テラ(T)=一兆,…となります。これを使えば,たとえば2の24乗は「2の24乗=2の4乗×2の20乗=16メガ(M)=16百万=1,600万」のように瞬時に計算できます。
 では,<解答>です。64(=2の6乗)種類の文字を6個並べるときの異なる場合の数は,(2の6乗)の6乗=2の36乗 通り。次にザックリ計算して,2の36乗=64十億=640億 通り。1年間に試みる回数は 1,000×3千2百万回=320億回 だから,全通りを試みるのに必要な年数は,640億÷320億=2年。というわけで,答えは「ア:36 イ:640 ウ:2」です。

 つまり,辞書式攻撃でパスワードを破ることは,現実には不可能だということです。もちろん名前や誕生日など想像されやすい文字列はその限りではありませんが,ランダムな文字列であれば6文字で十分だと言えるでしょう。それくらいなら覚えるのは楽勝!ですね。
…とはいうものの,
  ◇ 違うサイトでは違うパスワードを使え。
  ◇ 定期的に変更しろ。
  ◇ メモっちゃダメ。
こうなってくると,楽勝ムードは一気に萎えてしまいます。このメルマガを読んでいる方は東書EネットのIDとパスワードをお持ちのはずですが,おそらく他のサイトでもIDとパスワードをお持ちでしょう。私の例でいうとGoogleとYahoo!とamazonと…,たった6文字で十分だとは言っても,「全て異なるパスワードを,定期的に変更しながら,全部覚えておく」なんて私にはとても無理です。私,これでも情報科の教員ですが…。

フルカラーの色数

(2014年10月 70号)

 今回は,画像のデジタル化の理論から出した記述式問題を紹介します。これまでのメルマガで何度か扱った「2のn乗のざっくり計算」も絡んでいます。授業ではデジタルデータの容量計算などもやっていて,生徒たちはそういう計算は得意なのですが,「説明せよ」と出すと途端に難しく感じるようです。容量計算であれば「1点=3バイト」くらいの知識でなんとかなるようですが,記述問題ではごまかしがきかないということなんでしょう。
 なお,このメルマガ上では指数表記が使えませんので,「2のn乗」をエクセルの関数式に倣って「2^n」のように記載することにします。多少見にくいかと思いますが,ご勘弁願います。

○ 「現在のPCのディスプレイでは1600万色を表示できる」という。
  その理論を,下の語群の単語/数を全て使い,計算式を交えながら説明しなさい。
  <語群>  バイト   256   2^10

 私が想定した模範解答は次のとおりです。

◇ PCのディスプレイでは,光の三原色である赤・緑・青を各8ビット(=1バイト)ずつ使うことで1色あたり2^8=256階調(光の強弱で256種類の色を区別する)を表示している。
 更に3色組み合わせて表現できる色の総数は (2^8)^3=2^24 色となる。
 ここで「2^10=1,000」で計算すると,「2^24=2^4×2^20=16×百万=1600万」色となる。

 ところで,こんな答案(↓)は,全然ダメです。

◇ 1点の色を決めるのに3バイト使うから,2^24=256^3=2^10×2^14=1600万色

 確かに「語群の単語/数を全て」使っていますし,間違っていないと言えば間違っていないのですが,「語群の単語/数」を説明のために使っていない(効果的に使っていない)から,やっぱりダメですね。

  ○ 『バイト』 → ビット
   この場合は,1バイト=8ビット
     ┌─ 2^8 ─┘
     ↓  └→ 3色組み合わせて → 2^24
  ○ 『256』 → 256諧調(種類)     ↓
  ○ 『2^10』 → =1,000で概数計算 → 1600万色

のように書かなければいけません。語群の3つを全て使って説明するとなると,説明の仕方はこれしかないでしょう。

 余談ですが,生徒が書いた答案の中に,次のようなすばらしい(!?)答案がありました。

◇ 時給2^10円で256時間バイトしてやっと買ったPCだから,1,600万色くらいは表示できてくれないと困る。

 こちらの答案も見事に「語群の単語/数をすべて」使っています。ひとしきり笑わせてもらって,×をつけました。

◇      ◇      ◇

連載記事(2014年)
▷ 連載記事(2014前)
▷ 連載記事(2014中)
▷ 連載記事(2014後)

この記事が気に入ったらサポートをしてみませんか?