第22回:暗号

 やっと、本1冊分の原稿を書き上げ、とりあえず、重荷がなくなり、「いいちこ」な気分の「たけしのコマネチ大学数学科」の「第22回」。今回のテーマは「暗号」。問題からして、暗号なのだが、ちょっと、端折ってしまうと「マス北野の誕生日は、何曜日か?」それをアルファベットでパソコンのパスワードとして入力せよ、という問題(ちょっと演出を変えてみただけ?)。で、2006年1月1日は、日曜日で、マス北野の誕生日は「1947年1月18日」だ。

 今回の問題、エクセルなら、考える必要もなくサクサクと……。

Ex_2201

あ、コマ大数学研究会と同じ過ちを犯してしまった。英文として入力するには……。

Ex_2202

というわけだ。

 エクセルでは、1900年1月1日を「1」として、1日ずつカウントして日付を連続した「シリアル値」として、9999年12月31日まで管理している。2006年9月14日は「38974」だ。だから、ある期間の日数を求める場合は、引き算すれば、簡単に求めることができる。

 9999年なんていう、ずっと先の未来よりも、過去の日付をちゃんと計算できるようにしてほしかったと思うのは私だけだろうか。たとえば「アインシュタイン」の生涯日数を計算しようとしても、生誕が「1900年1月1日」以前なので、エラーになってしまう。

Ex_2205

 で、今回のテーマは「暗号」。なぜ、マス北野の誕生日の曜日を調べることが「暗号」につながるのか。竹内薫センセの「美しき数学の時間」によると、インターネット時代の公開鍵、秘密鍵を用いたRSA暗号にとって「モジュロ(MOD)」が重要なしくみを担っているということである。説明するのは大変なので、詳しくは「サルでもわかるRSA暗号」を参照してほしい。

 「モジュロ(MOD)」とは、ようするに、ある数をある数で割ったときの余り(剰余)だ。「モジュロ7をとる」と言ったら、ある数を「7」で割ったときの余り。「7を法とする世界」とも言えるようだ。つまり、この世界に「0~6」までの7つの数字しかなかったら、「6」の次は「0」になる。

 先ほど、エクセルでは1900年1月1日を「1」としていると書いたが、1900年1月1日は日曜日だ。1月2日は「2」で月曜日……1月6日は「6」で金曜日、1月7日は「7」という数字はないので「0」になって土曜日。日付が増えていっても、「=MOD(日付,7)」日付を7で割って余りを求めれば何曜日か、わかることになる。

(※2006年12月23日追記:ごめんなさい。1900年1月1日は月曜日です。Excelで日付と曜日が正しく表示されるのは、1900年3月1日以降です。)

 エクセルには、指定した日付の曜日を戻り値として返す「WEEKDAY」という関数がある。「=WEEKDAY(日付)」とすればよい。基本的に「=MOD(日付,7)」と同じ考え方なのだが、土曜日を「7」としている点が違う(その代わり「0」はない)。この関数を利用して、万年カレンダーを作ることができる。

Ex_2203

 指定した年月の最初の日「1日」が何曜日になるかを求め、それから遡って、カレンダーの最初の日曜日に表示する日にちを求める。あとは、その数に「1」を足していくだけ。

Ex_2204

 その「月」以外の「日にち」を灰色にするには、条件付き書式で「数式が」「=MONTH(A3)<>$B$1」として、書式で文字を灰色に設定する(※セルA3はカレンダーの最初に表示する日にち、セル$B$1は、何月かを表示しているセルを指定)。

 いまさら、万年カレンダーの作り方を教えられても……なんだかなぁと思う今日この頃、いかがお過ごしですか? とゆーか、さんざん仕事でエクセルの記事を書き、趣味のブログでもエクセルの記事を書く私は、どうかしていると思う今日この頃。もっともファミ通にいた頃は、ゲームの仕事に疲れ、息抜きに好きなゲームをしていたが……。

第21回:等分

 ホントに頭のいい人って、自分が何をするべきかを考え、時間を使っている人なんだろうな。その場、その場で刹那的にやりたい事をやってきた私って、どーなのよの「たけしのコマネチ大学数学科」第21回。

Ex_2101  今回の講義は「等分」。第1問は、「円の中心[P]を通る直線を引き、図の面積を2等分せよ」という問題。あまりに簡単だったためか、考慮時間を残し、全員正解。というわけで、新たな問題が配られた。第2問も、同じく「角[P]を通る直線で図の面積を2等分する」問題だ。
 コマ大数学研究会のメンバーにとっては、晴天の霹靂だ。だって、ロケで汗を流し、巨大なノコギリで丸太を切ったのは何なんだったの? ということになる。第2問は、いきなりロケなしのペーパーテストとなった。

 こういう図形の問題って、どういう補助線を引くかがポイントになるんだよね。でも、補助線を引こうにも限られているから、直感的に解答に辿り着く。

Ex_2102

 第2問は、ちょっと手強い。まず、ちょっとわかりづらいかもしれないが、ブルーで色分けした2つの四角は、除外して考えても問題ない。すると、残りは7個なので、7個の四角を2等分することになる。

Ex_2104

「(1/2)*4*X=(7/2)」の式を整えると、「X=1+(3/4)」になる。Xは、底辺が「4」で面積が「7」の四角形の高さに相当する。その対角線を結べば、面積は(1/2)になるわけだ。ポイントは補助線をどう引くかだが、マス北野は、これに苦労した。東大生コンビは計算で(1/4)と(3/4)の位置を出したが、あとは目分量で線を引いた(^^;
図は、中村亨センセの「美しき」解答。

 番組を見忘れた人のため、今回は、この他にも次のような問題が用意されていたので紹介しておく。面積を2等分することは変わらないが、右上の例題のように2つの同じ形になるようにするわけだ。図形の問題は、作図に時間がかかる。いったい私は何をやっているのか……。

Ex_2105

負け犬と、勝ち犬?

 世の中には「勝ち組」と「負け組」のような、二項に分類するのが好きな人が多いようだ。似たような分類として「金持ち父さん、貧乏父さん」や、古くは「マル金、マル貧」などがある。

 「負け犬」は、未婚、子ナシ、30歳以上の女性、「勝ち犬」は、既婚、子供ありの30代女性という分類もあるね。でも、「負け犬」という言葉はあるけれど、「勝ち犬」という言葉は、あまり聞かないような……。

Mutugorou

 象のオシッコも飲んで確かめるし、ライオンに指を噛み切られても、ライオンのことを心配する、畑 正憲氏(通称、ムツゴロウさん)によると、「負け犬」とは、「群れに対して『腹』を見せられない犬のことです」と定義する。つまり「お腹」は、非常にやわらかく、重要な臓器があるため、咬まれると致命傷になってしまう。しかし、群れに対して、そのウィークポイントである「腹」をさらけ出すことで「私は群れに属しますよ、私の命は群れに預けますよ」という絶対服従の意思表示をする。これができるか、できないかで「負け犬」が決まってしまうと言う。

 「負け犬」は、群れの一員として、自分の弱点「腹」を見せることができない。当然、群れからは弾き出され、疎外され、孤立して生きることになる。厳しい自然の中で生きていくため、犬社会では、群れと行動を共にし、群れの中で生きていくほうが圧倒的にリスクが少ない。なぜ、負け犬は自分の腹を見せることができないのか。それは、咬まれたら命はないという恐怖だ。他者(他犬?)を信用できない疑心暗鬼の心だ。それを克服できない犬は「負け犬」となってしまう。

 ところで、どの組織に属さず、自分の力だけで生きている人のことを自称、他称も含め「一匹狼」などと言う。犬も狼も群れで行動する動物で、その点では「負け犬」も「一匹狼」も意味合いとしては同じものだ。しかし、受け取るイメージとしては、大きく違う。「一匹狼」というと、自らの意思で群れに与せず、自らの力を信じ、たったひとりで生きていくパワーを感じる。いっぽう「負け犬」は、自らの意思とは関係なく、他者から貼られるレッテルで、最初から負けちゃっている感じがする。生態系としてのルーツは、ごく近いはずなのに「狼」は、人間界とは相容れぬ存在で、孤高の存在というイメージ、「犬」は人間に飼いならされ、飼い主には尻尾を振りまくり、権力には絶対服従で逆らえない、権力にへつらうイメージがある。コイズミも髪型こそ、ライオンヘアだが、そのじつ、ブッシュの忠犬ポチなどと揶揄されている。なぜ「犬」と「狼」では、こんなにもイメージが違うのだろうか。

 犬社会では、群れの中でも階級のランク付けが行われる。人間と共生し、愛玩動物となった犬だが、自分が所属する群れの中でランク付けをすることを忘れてはいない。犬は人間に飼われていても、その家族の中の力関係を判断して、自分のポジション(ランク)を認識する。いつも犬のエサを用意し、世話をしている奥さんの言うことを聞くのかと思えば、全然、世話をしていない夫の言うことを優先的に聞いたりする。

 で、ひとつの基準となるのが、食事の順番だ。犬や狼の社会では、群れの中でポジションが高い犬が、先にエサにありつける。ポジションの低い犬は、その間、がまんして待っている。会社で残業して帰りの遅い夫は、家族の中で、一番最後に食事をとる。そんな状況を犬はちゃんと見ている。たまの休みぐらい、寝坊したいと思っても、じゃま者扱いをされている夫を犬は見ている。夫の家族の中のランクは下がるばかりだ。

 ペットを愛するあまり、生活の中で犬を優先するようになると、群れの中で自分がボスだと認識する「勘違い犬」も登場する。家族を自分を世話する僕(しもべ)として勘違いしちゃうわけだ。だからボスである自分の気に食わないことをすれば、「ボスに対して、なにをするんだ!」と咬みつく。つまり「飼い犬に手を咬まれる」のは、ちゃんと犬と接していない飼い主の責任なのだ。なんだか、犬社会だけでなく、人間社会でも少子化で「ひとりっ子」のため、大事に育てられ、欲しいものは何でも手に入る子供たちにも「勘違い君」がいるような気がする。

 さんざん、犬の悪口を書いてきたが、私はけっして犬が嫌いなわけじゃない。盲導犬や、介助犬、麻薬捜査犬や警察犬など、その献身的な働きぶりや、嗅覚をはじめとする優れた能力には感嘆する。犬は人間にとって、何ものにも代えることのできないパートナーと成り得る。盲導犬のドキュメンタリー番組などを見ると、思わず、号泣してしまうことがあるくらいだ(歳をとると涙腺も緩むみたいだ)。

 そんな犬の能力の一端として、「これはスゴイ!」と思ったのが、「がん」を嗅ぎ分ける犬だ。犬は飼い主の身体の不調や病気を知るという話は聞いていたが、人間の吐く息だけで、「がん」に患っているかどうかを嗅ぎ分けることができるというのだ。それも「早期がん」まで。トレーニングを積むことで、最先端の医療システムに勝るとも劣らない確率で嗅ぎ分けるという。とゆーか、逆に犬の優れた能力に着目し、科学的に分析することで、人間の吐く息で「がん」を検知するシステムの研究も進んでいるらしい。

OJPC福祉犬育成協会

 話はダックスフンド……あれ、思ったほど、語感が似ていない;;。あらためて話は「ダッフン」じゃなくて、脱線するが、救急車のサイレンに犬が反応して吠えることは、よく耳にする。「SPA!」には「バカはサイレンで泣く」というコーナーもあったくらいだ。私の住んでいる地域では、昔ながらに「ト~フ~♪」というラッパの音とともに、豆腐屋さんが、時折やってくる。もちろん、豆腐はパック詰めされたものだが……。すると、豆腐屋さんの「ト~フ~♪」のラッパに合わせて、近所の犬たちが「Yo~Yo~♪」とラップを踊るわけがなく、「ア~ウォ~ン♪」と音程を微妙に合わせて吠える。バカ犬だなぁと思いつつ、思わず、微笑んでしまう。自分もバカ犬に共鳴して、なんとなくハッピーな気分になる。「負け犬の遠吠え」ではなく、「飼い犬の豆腐吠え」ということで、おあとがよろしいようで……(すまん、おあとに、よろしくないオヤジ臭が漂ってしまった;;)。

 駄文を書きながら、テレビ朝日の「ワイドスクランブル」に出演する、小飼弾氏を拝顔しようと思ったのだが、もう酔いが限界……。

第20回:ラマヌジャン

 これが頭の中にひっかかっていると、仕事がなかなか進まない「たけしのコマネチ大学数学科」、許して編集者さん、懇願の「第20回」。今回のテーマは「ラマヌジャン」。

 今回、コマ大数学研究会のロケ地は、高円寺の商店街。私が放送作家なら、湾岸に並ぶ、シャッターに大きく数字がペイントされている倉庫をロケ地に選ぶな。とゆーか、この番組、放送作家は介在しているのか。それは、ともかく「10軒以上、50軒以内で1から番号の振ってある家がある。それを左右(番号の小さいほうからと、番号の大きいほう)から番号を足していき、左右が同じ数になる家の番号を答えよ」という問題。

Ex_2001  まずは、1番から8番までの例題を考えると、6番目の家が左右の番地を足した数が等しくなる。これを踏まえて、問題を解くわけだが、実際にロケで左右から数を足していく、数学研究会はカンタンジャンと思うかもしれない。私も力まかせにエクセルで1から50までをオートフィルで入力し、B列は上から、C列は下から足していく方法で解こうとしたが、そうは、イカヌジャン。数が合わないのだ。つまり、家の数は10以上、50以内ということで、決まっていないということ。数学研究会も、最初、そこでつまづいたが、研究会メンバーの「〆さばアタル」のひらめきで見事、解決した。

Ex_2002  で、完全なネタばらしになってしまうが、私も数学研究会と同じ方法で正解にたどり着いた。言い忘れたが、エクセルで足し算の数式を入力する際、B列は上からなので問題ないが、C列の場合、下からとなる。エクセルの相対参照は、アクティブセルを基準にして行われるので、下から上方向のオートフィルでも問題ない。

 マス北野は、例題から見事な直観力を発揮して正解したが、「ラマヌジャン」は天才的な直観力を持った数学者だったらしい。竹内薫センセの「美しき数学の時間」で、今回のテーマ「ラマヌジャン」の連分数を使った解法を紹介してくれた。

 家の数が増えた場合、力まかせの数学研究会の手法では、なかなか正解にたどりつけなくなる。ラマヌジャンは、友人に「1500以内で…」という条件を加えられた問題を出されたとき、即座に「204」と答えたそうだ。竹内薫センセは、愛機「MacBook」の自作(?)プログラムで、連分数による解法の実演を見せてくれた。

 私は「連分数」のことなど、まったくわからないが、ある法則を見つけた。これなら「エクセル」だって、数が増えたときも一瞬で答えることができるぞ。

Ex_2003

 最初の家が8軒のときの例題では、分母が「2」、分子が「3」で、答えが「2×3」で「6」になった。次が「7」と「5」で、答えが「35」だ。すると、次の分母は前の答えの分母と分子を足したもの。分子は、その分母に前の答えの分母を足したもの、と考えた。1行目の数式は「=B1+B2*2」と書き表すこともできる(こっちのほうがスマートかも)。家の数は、竹内センセの解説どおり、「分子(n)の二乗」と「分母(m)の二乗×2」と比べて、小さいほうを取る(…とココでも、法則発見)。

Ex_2004

 この簡単な数式を入力したセルをオートフィルで入力すると、ちゃんと答えが出るじゃないですか。どうしてそうなるのか(この方法が正しいことを)証明しなさいと言われても、私にはできないけれど……。だいたい「連分数」なんて、わけがワカラヌジャン!

無限の天才―夭逝の数学者・ラマヌジャン Book 無限の天才―夭逝の数学者・ラマヌジャン

著者:ロバート カニーゲル
販売元:工作舎
Amazon.co.jpで詳細を確認する