頭脳王前日!(バレンタインデー)
こんにちは、とみちゃんです。
今日2月14日はバレンタインデーですね。
「バレンタイン」とは、3世紀のローマ帝国にいた「ヴァレンティヌス」という人の名前が由来です。
そのころのローマでは、戦いに専念できるように若い兵士たちが結婚することを禁止していました。
ヴァレンティヌスはそれに反対して、こっそりと若者たちを結婚させていました。
ところが、それが皇帝にばれてしまい、2月14日にヴァレンティヌスは処刑されたのです。
こうして、2月14日は、カップルたちを守ろうとしたヴァレンティヌスに感謝をささげるという意味を込めて「バレンタインデー」となったのです。
日本では、チョコレート業界の戦略により、「2月14日=チョコレート」というイメージが定着していますが、海外ではチョコレートのほかにカードや色々なプレゼントを恋人や家族にあげているようです。
それはさておき、明日2月15日の夜9時から「頭脳王」がテレビで放送されます(^^♪
CMとか見ていると、QRコードを解読するような問題が出るようです。
え?きゅーあーるこーどのかいどく?
いったい何を言ってるんだ?
まあ確かに、QRコードの読み取りは今までスマホに任せてばっかりだったからな~。たまには自分で・・・
って、いや、ほとんどの人はスマホのアプリとかに任せてるでしょ!
とは思いつつ、気になったのでQRコードの仕組みを少し調べてみました。
QRコードは、データの情報のほかにファインダパターン、アライメントパターン、フォーマット情報など色々なものから構成されています。
ファインダパターン(角にある四角いやつ)やアライメントパターン(右下の方にある四角いやつ)やタイミングパターン(斜線で書いた、白と黒が交互に並んでるやつ)は、読み取る際に位置を補正したり、座標を決定するために必要なものなので特に気にしなくていいです。
データの読み取りに必要なのは、フォーマット情報と呼ばれるものです。
黒=1、白=0とすると、画像のQRコードのフォーマット情報(赤で示した、タイミングパターンを除いた15マス)を矢印に従って読むと
101101101001011
となります。
このフォーマット情報の3つ目から5つ目の数字「110」は、画像のQRコードにかけられた「マスク」の情報です。
マスクとは、データの中にファインダパターンと同じ形状のマークが現れないように、白と黒をバランスよく並べるためのものです。
今回の「110」の場合、マスクの種類は
((ij) mod 2 + (ij) mod 3)mod 2 = 0
のようです。
この情報をもとに、対応するマスの色を反転していくみたいなのですが、文系の私にはちょっと難しいです(~_~;)
そこまでできたら(結局できませんでしたが)、いよいよデータを解読していきます。
QRコードのデータを読み取る場合、右下からジグザグに読み取るようです。
右下→その左隣→その右上→その左隣・・・といった感じです。
その後、読み取った1や0の2進数を16進数に変換していくようです。
こうやって読み取っていくと、https://・・・というのが浮かび上がってくるらしいです。
人の手でやると非常に面倒くさい作業ですが、n進数やmodが理解できればパズルや脳トレみたいで面白そうだなって感じました(*'▽')
理系でこういう解読が好きな方はぜひ挑戦してみてください(-ω-)/
今回はQRコードについてでしたが、こうして仕組みを知ると改めてスマホの読み取りアプリってすごいなと実感しました。
最後に、頭脳王前日ということで、問題を1問。
CD=400
CM=900
のとき
MIX=?