複天一流:どんな手を使ってでも問題解決を図るブログ

宮本武蔵の五輪書の教えに従い、どんな手を使ってでも問題解決を図るブログです(特に、科学、数学、工学の問題についてですが)

東大数学2024問題5 : 立体図形の問題

久しぶりの問題分析

熱中症、夏バテなど言い訳はいろいろあるのだが、とにかく間が空いてしまったことは反省である。地球温暖化のせいだろうか、今年は梅雨の時期になってもなかなか梅雨が始まらず、蒸し暑い日に苦しむ日々が続いていた。

そのうえ、梅雨入りしたと思ったらあっというまに梅雨明けとなり、梅雨時期よりもさらに暑い日々がやってきた。熱中症との戦いが始まったのであった。熱中症にかかって一度具合が悪くなると、数日は体調不良のため体を動かす仕事はもちろん、頭を使う仕事も全くできなくなってしまう。これが熱中症という病気のもっとも恐ろしい点であると、この夏は身に染みて理解した。脳の「性能低下」によるパフォーマンス不足というべきだろうか?(熱劣化?)ということで、まともな研究を行い、日々の業務をいつものようにこなしていくためには、熱中症について対策を講じする必要が生じた。真剣に調べてみたのはこれが初めてのことで、その成果をここにまとめておくことにした。

まとめたあとで、2024年の入試問題についての分析を(久しぶりに)行ってみたい。とはいえ、「熱劣化による性能低下」が如実に現れるのが立体図形問題である。3次元図形というのは図面として描き出しにくく、直感的な理解がなかなか面倒である。頭の中での想像力が必要とされるのだが、この「立体認識能力」というのは「脳力の消費」がかなり激しく、長時間の思考はなかなか難しい(ウルトラマンのように3分程度が精一杯である)。立体図形の問題は東大の「看板娘」のようなものであり毎年必ず出題されるから、「獲物」としては打って付けであるはずなのだが、苦手意識が出てしまうと厄介なことになる。この問題を突破するには、カラータイマーが点滅する前になんとかケリをつけるか、あるいは2次元の問題に落とし込んでから勝負するのが常套手段である(今回は後者でいくため、多少熱中症ボケがあってもなんとかなる)。

熱中症とはなにか?

さて、熱中症である。梅雨明けの直後のころにAMラジオでAFNを聴いていたとき、「熱中症に気をつけよう」キャンペーンの特番を米軍が放送していた。その内容に基づくと、英語(アメリカ英語)では熱中症は「Heat exhaustion」というらしい。

そういえば夏に限らずAFNでは米兵たちに「脱水に気をつけよう」というアドバイスをよく出しているが、そこでは"Dehydration"という用語を使っている(台湾海峡やフィリピン、南太平洋など暑い地域での「活動」に彼らはよく従事しているからであろう)。

Hydrate yourself to prevent dehydration

というのは「脱水を防ぐために水分補給をしよう」という意味だが、英語では「脱水」と「水分補給」が同じ用語の肯定型と非定型を用いて表現されるので、どちらか一方だけで意味が通じてしまう。つまり、

Hydrate yourself

あるいは

Prevent dehydration

でよいので、日本語より便利な感じがする。ちなみに、"hydrogen"は水素を意味する。

熱中症のキャンペーン特番を聞く前は、「たぶん熱中症というのも脱水(dehydration)と表現するのだろうな」とぼんやりと考えていた。しかし、キャンペーンの内容を聞くと、どうやら熱中症と脱水というのを使い分けているように聞こえるのである。そこで今度は日本語ではどうなっているのか調べてみることにした。ちなみに和英翻訳で調べると熱中症のことを"heat stroke"あるいは"heat shock"と説明するものが結構ある。これはもしかすると医学用語なのではないか、あるいはヨーロッパ系の言語ではこちらを採用しているのかもしれない。間違いではないだろうが、少なくともアメリカ軍では「Heat exhaustion」という言葉を採用しているようである。

"stroke"とか"shock"というと「発作」という感じがする。一方で"exhaustion"というのは「疲労」である。実際に熱中症に罹ってみて実感したのは、どちらかというと「疲労」の方である。つまり、米軍の表現の方が「しっくり」くる感じがある。

さて、日本語では熱中症と脱水症状を分けているのであろうか?日常的な用法からすると分けているように感じはするものの、「じゃあ違いはなんだ?」と言われてもなかなか即答はできない。そこで検索してみることにした。

熱中症と脱水症状の違い

まずヒットしたのが、経口補水液のメーカーのHPであった。

www.os-1.jp

このページによると、熱中症は「脱水と高体温症による体調不良の症状」ということであり、熱中症$\subset$脱水症状、という集合関係がありそうである。そして脱水は「体内の体液が失われること」と定義され、さらに「体液とは水分と電解質のこと」とある。つまり、血液などから水分が減ってしまうのみならず、そこに溶け込んでいるナトリウムやカリウムなどの電解質(イオン)も減少する状態が、脱水状態ということになる。

脱水症状が続くと汗などをかきにくくなり、蒸発熱による体温調節が難しくなる。これが継続すると体温が上がり、内臓の機能や細胞の構造などに障害や損傷が現れ始め、病気の状態へと陥ってしまう。この最後の状態がおそらく「熱中症」なのであろう。

NHKのHPでは、まず熱中症について説明がある。 www.nhk.jp

それによると、「適切な体温に調整できない異常な生理的状態に陥り、体内に熱が溜め込まれてしまった状態」とある。この状態に陥る引き金になるのが脱水症状、つまり体液(=水分+電解質成分)が減少した状態、ともある。

ということで、脱水症状は熱中症原因であり、熱中症は脱水症状の結果であるということになる。言い換えれば、熱中症には至らない脱水症状は存在する。そして熱中症になっていれば、大抵の場合すでに脱水症状に陥っているということになるのであろう(脱水ではない熱中症の例はおそらくないだろうが、まだ完全には確認しきれていないので、これからの研究テーマとなりうる)。

まずは脱水症状に陥らないようにすることで、熱中症を防ぐことができそうな感じである。つまり必要条件というわけなので、そこを叩いてしまえば熱中症にはならない、という結論である。

そこで、水だけではなく、電解質も摂取するように心掛けるようにした。とたんに、梅雨明け直後から連日続いていた朝の頭痛を伴う体調不良が消失し、1日を通して元気に生活できるようになったのである。かかりつけの医者によると、電解質と水分補給にはスポーツドリンクが良いらしいが、糖分が多いためそこが体によくないので、麦茶、スポーツドリンク、そしてただの水を順番に飲み回すのがよいとのことである。ちなみにお茶は脱水症状を促すのでやめた方がよいらしい。「気がついたら水分補給」(だいたい30分にコップ一杯)の時間間隔でやってみたら、この夏の体調は劇的に改善したのである!もっと早く調べておけばよかった、と反省しているところである。

2024数学 問5

さて余談はこのくらいにしておいて、頭の回転が熱疲労でいまひとつではあるが、そろそろ使わないと錆びついてしまうのも確かである。問題文をまずは読んでみる。

問題5の問題文

3次元空間に3点A,B,Cが与えられていて、それぞれx軸、y軸、z軸上の単位位置(つまり原点から1の距離の場所)に設定されている。この3点によって平面Hが形成される。計算してみれば、それは\begin{equation} \text{H: } x+y+z-1=0\end{equation}で与えられる。線分ACの中点として定義される点Dの座標は\begin{equation} \text{D: } \left(\frac{1}{2},0,\frac{1}{2}\right)\end{equation}である。$\triangle\text{ABD}$は平面Hの部分領域であることは自明だろう。

近年のビデオゲームでは、立体を小さな三角形で覆うことで近似する。ポリゴンという名前で呼ばれることもあると思う。したがって、3Dゲームの基本である、ポリゴンの回転は、各々の三角形の回転によって表現することになる。この問題は三角形ABDをx軸の周りに回すので、ゲームプログラミングで頻出する計算の「基礎」とも言えるものである。したがって、ゲームプログラマーを目指す諸君は(東大に落ちたとしても)この問題だけは絶対に落としてはいけいないのである! 

まずは図形の概形を調べてみよう。まずはいつものようにgnuplotで最低限の状況を再現してみる。平面Hを$x\ge 0, y\ge 0, z\ge 0$の領域で描いてみた。

点A,B,Cがつくる三角形状の平面Hの様子

出てきたのは正三角形の領域である。

次に、点A, Cの中点であるDを打ち、DとBを結んで線分を作る。これで平面Hの部分領域である三角形ABDがどんな感じに配置されるか観察することができるようになった(こちらのほうはgnuplotではなく手書きで書き入れた)。

三角形ABDの概形を見る

この三角形ABDをx軸の周りに回転させたとき、三角形が空間を移動する部分の領域の面積を求めよ、というのが問題の主旨であるが、それはなんとなく三角錐が関わっていることを予想することができるだろう。こういう場合は、極端な具体例を2、3考え、その間を埋める形で一般化をしていけばよいのであるが、今回は点A, B, そしてDがどのような軌道を描くか考えると、扱うべき立体図形が見えてくる(ここまでで、1分が経過である=カラータイマー点滅まであと2分)。

点Aはx軸上にあるので、それをx軸に回転させると半径0の円の軌跡、つまり点Aのままである。ここが円錐の頂点になることが後でわかるだろう。

点Bは半径1の円の軌跡を描く。したがって、線分ABが描くのは底面が半径1の円となっているような円錐の側面領域である。

一方、点Dはxz平面にあるので、回転させると半径1/2の円周を描く。

バームクーヘンのように、軸周り(今回はx軸)に回転させてつくる立体であるから、x軸に垂直な平面によってできる断面を見ながら考察をすすめるのが合理的であろう。より具体的にいうと、x軸に垂直な平面$x=x_0, 0\le x_0 \le 1$と三角形ABDを形成する平面Hの部分領域の交線の長さや傾きを炙り出すのが、問題解決の入り口ということになる。

gnuplotスクリプト

久しぶりに動かしたgnuplotについては、命令をかなり忘れていたのでこちらのHPを参考にさせていただいた。こういう実例豊富な解説は使い勝手がとてもいいので感謝です。

上の図形を描くのに作ったスクリプトは以下の通り。

set xrange [0:1]
set yrange [0:1]
set zrange [0:1]


set size square
set size 0.7, 1.0

set isosamples 100

set hidden3d

set contour
set cntrparam levels 10

set arrow 1 from 0,0,0 to 1,0,0
set arrow 2 from 0,0,0 to 0,1,0
set arrow 3 from 0,0,0 to 0,0,1

set xlabel "X"
set ylabel "Y"
set zlabel "Z"

splot -x-y+1