ICPC Asia Yokohama Regional 2025 参加記 (Syntax Sugar haruki視点)
こんにちは。harukiと申します。
先日開催された国際大学対抗プログラミングコンテストICPC Asia Yokohama Regional 2025にja14378、Kei83、haruki4936のチーム「Syntax Sugar」で出場しました~~~
ICPCって???
9~12問程度のアルゴリズムの問題が出題され、3~5時間の競技時間でどれだけ多く、早く、正確に解けるかを3人1組のチームで競う、プログラミングコンテストです。
問題例:ICPC 得点集計ソフトウェア (2007年国内予選A問題)
審判(3人以上)がつけた得点があたえられるので、最大値と最小値を除いた平均を求めてください。得点リストが1000、342、0なら答えは342。(ICPCについて/どんな問題を解くの?から引用)
2次予選にあたるICPC Asia Yokohama Regionalでは、5時間で12問が出題されます。
Yokohama Regional当日まで
チームメンバー集め
去年一緒に組んでいたQiToYが無事に卒業したため、去年別チームでYokohama Regionalに出場していたjaさんをお誘いしたところ、快諾いただきました。ありがとう。
チームメンバー
チーム名決定
今年もチーム名を決める担当でした。
「プログラミングコンテストっぽくて、かわいい印象を与える」というコンセプトをもとにいい名前を探しました。結果「糖衣構文」という概念を表す ”Syntax Sugar” という言葉を見つけ、採用しました。このチーム名、コンセプトに完璧にハマっていてめちゃくちゃ気に入ってます。
国内予選
参加記書いてなかったので軽めに…
例年の「5完すれば確実に国内予選を突破できる」という結果から「順位表に惑わされずに、丁寧に慎重に5完する」という作戦で挑みました。
蓋を開けてみれば、ボーダーが6完 or 5完早解きという、過去に類を見ないレベルの易化となり、ボーダー以下3位で予選敗退という結果になりました。
10月16日
国内予選の苦い思い出を忘れかけていた頃、一通のメールが届きました。

めちゃめちゃ嬉しくて、家の自室で叫んだのを今でも鮮明に覚えています。
チーム練習
前年までは「問題セットの最初の2問は最も易しいが、それ以降は難易度ランダム」という条件でしたが、今年から「すべての問題の難易度が完全にランダム」になり、過去のYokohama Regionalの問題セットを練習で使えなくなりました。
困っている旨をXで呟いたところ、物理好きさんから「Seoul Regionalの問題セットがよさそう」という情報を教えていただきました。ありがとうございます…
オフラインで集まって,2回Seoul Regionalのセットを走りました。
チーム紹介スライド作成
「チーム紹介、会場にいる200人ぐらいの人々に自分が作ったものを絶対見てもらえるすごい時間じゃん!!!」ということに気づいたので、めちゃくちゃ力を入れました。

「情報量が多い、なんかごちゃごちゃしてる」が大まかなコンセプトです。
チームロゴは、さわらつきさんのロゴを参考にユールカ Stdをベースに作りました。モチーフとしてターミナルを'x'の文字に、角砂糖を'a'の文字に盛り込んでいます。

左下・右端のディスクのキャラクターは,去年までの国内予選のジャッジで登場していたふににちゃんです。(去年やればよかった…)


1秒計と√2秒計です。
その他、
などを参考にしました。
前日リハーサル
集合時間の14時に遅刻してしまい、チームのみんなやコーチ、運営の方々にご迷惑をおかけしてしまいました。申し訳ありませんでした…
今年は1問正解ごとに1個風船がもらえるらしいです。世界大会とかでいっぱい風船が上がってるの好きだったので、結構テンション上がりました。
明日は9時までに来ないと失格だよという話を運営のアナウンスから5回、チームメイトのKeiくんから5回の計10回くらい聞きました。本当にごめん。
当日の流れ
コンテスト前
7時にちゃんと起きれました。よかった。懇親会用の名札などをコンビニで印刷して会場に向かいます。
去年までは手荷物は自チームのブースに置いていましたが、今年は別の場所に荷物を置いておかなければなりませんでした。自分は持ちこみたいものが多かったので、持ち運ぶ用の透明なポリ袋とかの持ち込みは許可していただきたかった… あと、寒がりなのでブランケットも持ち込ませてほしいです。(ズボンを2枚重ねて対策していました)
コンテスト開始
問題が出題されました。KeiくんにPCの初期設定をお願いして、jaさんと二人で問題を読み進めます。
初期設定を終えたKeiくんからDが解かれているという情報を聞きます。
D問題要約
整数
が与えられる。
かつ
が共に自然数となる任意のペア
の中で、文字列として
と
を結合したとき、最も数字が大きくなるようなものは何か。
例:
の時、
とすれば、
を作ることができて、これは最大。
同時に、 未満の
べきのうち最大の数を
としたものが答えになるのでは、という予想を聞きました。ぱっと見正しそうですが、正当性を示すことができなかったので、
or
が
べきとなる分け方を全通り試すことに。そのまま比較するとオーバーフローしてしまうので、文字列で比較したりするのがちょっと面倒で手間取りますが、なんとかプログラムを書ききり提出。CORRECT (正解) (0:30)
次いでEが解かれていたので、jaさんとKeiくんに問題読解をおまかせしてEを考えることにしました。
E問題要約
整数
が与えられる。
幅
、高さ
、奥行き
の豆腐がある。いずれかの面に平行に包丁をいれて、 一辺の長さが等しいさいの目切りの豆腐を
個以上作りたい。この時、さいの目切りの豆腐の一辺の長さとして可能な最大値を既約分数で正確に求めよ。豆腐は余ってもよい。
豆腐の一辺の長さに単調性があることから、小数誤差が許容されるなら二分探索で解けることがすぐにわかりますが、分数で正確に表記しなければなりません…
15分ほど考えると、候補としてありうる解はしかないことがわかりました。しかも、答えの単調性は保たれているので、各辺について3回二分探索をして、その中の最大値を答えとしてあげればよいです。
オーバーフローの検出や、直前にソラで書けるか不安で手で写経した二分探索ライブラリにミスがあった(え???)などのバグがありましたが、サンプルが一致したので提出します。CORRECT (1:24)
順位表を見ると、Hが、次いでA,Jが多く解かれていたので、3人でHを考えることに。
H問題要約
整数
と、 縦
行、横
列の
#と.で構成された盤面が与えられる。以下のような一辺
の∪型のピースが十分な個数ある。(例では
)
#...#
#...#
#...#
#...#
#####いくつかのピースを回転してもいいので、
#が重ならないように配置して、盤面を埋め尽くすことができるか判定せよ。例:
6 6 5
#####.
######
#....#
#....#
######
.#####これは、以下のように2つのピースを並べてあげればできる。
@@@@@.
@+++++
@....+
@....+
@@@@@+
.+++++
Keiくんが「∪の角を検出して、隣り合ってるものをマッチングさせていって構築できるか確かめる」という方針を思いつき、実装をはじめました。
しばらくの間僕はJを、jaさんはAを考えていましたが、特にクリティカルな方針は浮かばず、我々が想定している実装量の割に解かれまくっているHを再考することに。すると、
- 「∪で敷き詰めることができるなら、その方法は一意であり、存在する限り貪欲に取り除いていくことで検出が可能であるはず」という予想(これは正しいらしいです)
- 「∪を取り除いた後,盤面を90度回転させる」という処理を4回すれば,すべての向きのUを取り除くことができて実装量を減らせる
- ∪が存在するかは、二次元累積和を用いれば高速に判定できる
などを考え付きました。KeiくんからPCをもらい、これらのアイデアをもとにした新しいプログラムの実装をします。かなり時間をかけてしまいましたが、サンプルを合わせたので提出。COMPILER-ERROR (文法エラー) (3:11)
さっきまで動いていたプログラムが、急に動かなくなってしまったことで頭の中がハテナでいっぱいになりましたが、Keiくんが書き途中だった別のプログラムを提出していたらしいです。コンパイルエラーでよかったね(誤答ペナルティがないので)と胸をなでおろしつつ再提出。WRONG-ANSWER (不正解) (3:12)
プログラムを再度確認すると、盤面を操作するfor文の範囲が一部間違っていたことに気づきました。修正して提出します。WRONG-ANSWER (3:17)
少し焦りつつ、Aのdp解を思いついたjaさんにPCを渡して、Hが落ちるケースを探してみると、以下のケースが正しく動作しないことに気が付きました。
##########
....##...#
....##...#
....##...#
######...#
二次元累積和を更新することができないので、一度取り除いて∪が存在しなくなった箇所を誤検出していました。検出の処理を修正して再提出します。WRONG-ANSWER (4:05)
そんなはずはないと焦りがピークに。プログラムを印刷し、PCを渡してミスを探します。懸命に探しますが、実装にミスは見つかりません。
ここで、致命的なミスを発見しました。
「∪を取り除いた後,盤面を90度回転させる」という処理を4回すれば,すべての向きのUを取り除くことができて実装量を減らせる
この考察が誤りでした。例えば以下のケースで落ちます。
#####...#####
....#...#....
....#...#....
....#...#....
#####...#####
....#####....
....#...#....
....#...#....
....#...#....
....#...#....
⊃,⋂,⊂で構成された∪の部分を先に除去してしまい、うまくアルゴリズムが動作しません。これは,「これまでみた箇所にブロックがないため,今見ているブロックは必ずいずれかの∪の隅になる」という重要な仮定が担保されないことに起因しています。
この考察ミスを発見した時点で残り40分。気が狂いそうでした。2時間半を嘘の考察でドブに捨てたようなものですから。
Keiくんから、「”回転してから辞書順に盤面を走査、を4回する”のではなく、”辞書順に盤面を走査し、都度4通りの回転を都度試す”ならいけそう」と教えてもらいましたが、「∪が存在しないことを検出するのに最悪かかるので、全体で
かかってしまうのでは」という疑念が払拭できません。(コンテスト後に気づきますが、これは大丈夫です。今見ているマスを∪の一部分とできないなら、その後構築することは必ず不可能(∵先ほど示した重要な仮定)ですし、そもそも∪が存在しないことの判定は
で可能です)
同時に、jaさんがAのより簡単な実装を思いついたと言っています。この時点で残り20分。PCを明け渡してAを通すことにかけるか、Hを実装しきるかの判断を迫られました。
Hの疑念をどうしても払しょくすることができず、少し考えてから、jaさんがAを実装しきるのに賭けることを決め、PCを渡します。jaさんが時計とにらめっこしながら必死に実装する様子を、2人でじっと見守ります…
が、願いむなしく、Aを提出することさえ叶わずコンテスト終了時刻を迎えました。
終了
終了後
全問題の簡単な解説、順位表凍結解除(最後の1時間でなされた全提出の結果発表)、写真撮影などの後、立食形式の懇親会がありました。
当たり前なんですが,ご飯を食べることに集中するとお話が、お話をすることに集中するとご飯がおろそかになります。もどかしい…
僕が昔作った競技プログラミング関係ない動画の話をしてくださる方がいてびっくりしたり、スポンサーブースで出題されていたノベルティ付き問題の解法を暖色の人たちに片っ端から聞きまくる人を発見して大笑いしていました。(ズルい!!!)
楽しかったんですが、こういう自由に誰とも交流できる懇親会、結構難しくないですか???せっかくなので、自分が発見した懇親会でうまく交流するコツをいくつか書き残しておきます。新規性は特にないと思いますが、僕は気が付くのに時間がかかったので、同じように困っている誰かの役に立てたらと思います…
懇親会でうまく交流するコツ
同じように不安そうにしてる人と一緒に行動する
誰も知っている人がいない会話に飛び込んでいくのは怖いと思います。そこで、1人で交流するのではなく、2人以上で固まって交流するとよいです。知っている人が1人でもいる会話はなんとなく安心感があります。なお、最も簡単に組めるオススメの一緒に行動する人は「同じチームの人」です。
知らない人同士でお話ししてそうな雰囲気のところを探して会話の輪に入る
前提として、既にある程度交流のあるグループに入って喋るのはかなり難しいです。
Xなどで普段から絡んでいるグループの空気感は、緊張感がなく、すごく砕けたラフな感じが外から見ていてもわかります。そうでないグループは、初対面特有の緊張感というか、気持ちがうわずってふわふわしている感じがしたり、ですます調でお話していたりします。そういうところの会話に入っていくと、抵抗感少なく交流できて楽しいと思います。
アイコンがよく見える名札を下げておく
実際に参加すると痛感しますが、顔とお名前だけで誰がどの方か判別するのは、非常に難しいです…
そこで、自分はXのアイコンがでかでかとプリントされたはがきを首から下げることで、相手から見て自分がだれかすぐわかるようにしていました。向こうがXのアカウントを知ってくれているなら話のつかみになりますし、話しかけてもらえる可能性もぐんと上がります。そうでなくても、後でXで見ていただいたりしたときに相手の方の記憶に残りやすいはずです。
他にも、見えやすい胸元の位置に名札が来るように、名札のひもを縛って短くするというテクニック(Nafmoさんから教えていただきました)なども。
自分が知っている人とお話ししている知らない人と積極的に交流する
既に知っている人がいる人向けのテクニックですが、知っている人と一緒なら知らない人との交流も怖くない、という点でいえば最初のテクニックと同じです。「友だちの友だちは友だち」理論ですね。
いろんな人と楽しそうに話している人は、「Xなどで顔が広く普段から精力的に活動している人 or コミュ力おばけ」という一部の上澄みの層なので、そういう人たちを見て「自分はコミュ障だからうまく交流できない…」とへこむ必要は全くないです。
焦らずに、少しずつお友達を増やして、楽しめるといいですね。
終わりに

2完で59位/63チームという悔しい結果に終わってしまいました。
3人で別々の問題を解いていなければ、Hの実装をほかの人に任せていれば、Hを捨ててほかの問題の考察に回っていれば、最後の20分で順位表から客観的に難易度が高いとわかるAよりもHを優先していれば、と後悔は尽きません…
しかし、もともとは国内予選を通過できていない身でありながら、最後にオンサイトという形で次世代の強豪の息吹を感じられる、貴重な機会を恵んでもらったこと自体が幸運なことだったと思います。
振り返れば、2020年3月、コロナ禍の最中に気まぐれで始めた競技プログラミングが、大学生活の中でもひときわ熱中した趣味の一つになりました。現在の専攻(金属の材料的性質について研究しています)とは異なるITエンジニア職に興味を持ち、実際に内定をいただけたのも、競技プログラミングを通して得た経験が間違いなく大きな要因の1つだったと感じています。何より、純粋に競技プログラミングをやっている時間そのものが、とても楽しかったです。ありがとう、競技プログラミング。
最後まで読んでいただいて、ありがとうございました。
DATUM STUDIOさんのインターンシップに参加しました
データ活用のコンサルティングやデータ基盤構築、分析支援に強みを持つ企業さんである、DATUM STUDIO株式会社のインターンシップに去年の夏ごろに参加してました。応募~参加の流れとか自分が感じたことを書くので(いまさら???)、今後参加してみたい人とかの参考になればうれしいです。
参加前
魔法のスプレッドシート2025 | Notion(これは今年のやつです)でインターンシップを見つけて、「機械学習絡みのこといろいろできておもしろそ~~~」と「お金ほしい!!!」と思って応募しました。
選考ステップは、履歴書提出→カジュアル面談→webテスト→面接という感じでした。事前に作成していった10-15分程度のボリュームの自己紹介スライドを使って行われる面接は、人事の方いわく通過率が1桁%とかなり低いらしい(!!!)ので、スライドを丁寧に練り込んで挑みました。自分は学部時代の研究について、研究背景・意義、なぜその技術を使っているのか、今後の方針・展望など、かなりしっかりと深ぼられました。
合格してから参加まで
実際にインターン課題に取り組むチームのメンバーやメンターさんとの顔合わせ会とかがありました。初対面の人と話すときベタに緊張するタイプなので、開催前にある程度人となりがわかっているとほっとします。
また、事前課題として、SQLについての資料(実際の新卒研修で使用されているらしい)が送られてくるので、それについてた問題を解けるように練習してました。この資料がすごくて、「データベース/SQLとは???」という初歩から始まり、SQLの基本的な文法の体系だった説明がギッシリと詰まっていました。全部で200ページ越えてて貰った時はびっくりしましたが、全部通してやってみてかなり力が付いたと思います。
参加
全体の流れ

大手ECサイトの実際の購買データを利用して、データ基盤を構築しそれを基に分析、さらに分析した結果を報告するダッシュボードアプリとチャットボットの作成に取り組みました。
各日の流れ
1日の流れとしては、「午前中に座学を受けて、午後は提示された課題に対してチームごとに取り組み、1日の最後に全チームそれぞれその日の取り組みの内容を発表する」というような流れで行われました。
ここからは、各日にやったことについてお話しします。
1日目:課題「Amazon S3に配置された.csvファイルの内容を高速に読み込めるようにする」
csvファイル自体を「同じ列に同じ型のデータを持つことで全体の容量を削減する」という特徴のあるParquet形式に変換することで高速化を図りました。が、他チームの発表を見ると、コアの並列処理とかを工夫した方が圧倒的に性能がよかったです。Parquet形式に変換するというアイデアは生成AIのclaudeから教えてもらったものをそのまま使っていたので、ちゃんと自分たちで調べて考えないとダメだなと痛感しました…
2日目:課題「指定された要件に沿ってテーブルデータを整形する」
「購入時刻から抽出した日付を持った列を追加する」などの要件がいくつか設定されていて、それに沿ってガリガリSQLを使ってテーブルデータを整えていきました。また、同じ商品でも出品者によって商品の名前の付け方が異なっているので、実質的に同じ商品のデータを集約する「名寄せ」を行いました。
3日目:課題「RFM分析による顧客層の分析」
顧客の行動指標となる、利用履歴(Recency)・利用頻度(Frequency)・1回あたりの利用額(Monetary)から顧客を分析する「RFM分析」に取り組みました。これによって、利益につながっているメインターゲットとなる顧客層や、これからたくさん利用してくれそうな候補となる顧客層を洗い出すことができます。
自分たちのチームは、ネイルサロンさんのデータに絞って分析を行いました。これは、利用者層が若い女性の方という風に具体的にイメージでき、分析しやすく施策につなげやすいからという理由からです。ただ、今回は時間がなくて具体的な施策を立案できるところまではいけませんでした…
4日目:課題「分析結果を可視化できるWebアプリの作成」
「合計売上金額」や、「利用者の性別・年代別の購入割合の円グラフ」などの基本的なものから、「月ごとの時系列売上金額の積み上げ棒グラフ」、「購入された商品ランキングtop10」などの様々な情報が見られるダッシュボードアプリを作成しました。
作成にはPythonで簡単にWebアプリを作れるオープンソースライブラリ「Streamlit」を用いました。今まで聞いたことないフレームワークだったんでかなり身構えていたんですが、フロントエンドとバックエンドの分離を全然意識しないでかんたんに書けてびっくりした覚えがあります。小さいアプリをサクッと作るのにめちゃめちゃ便利だなと思いました。
5日目:課題「ユーザーの質問から、該当する商品を検索するチャットボットの作成」
ユーザーから入力された質問に対して、外部のデータベースから情報を検索して、得られた情報を適切な質問文と共に生成AIに投げることで、分析結果に特化した回答を得ることができます。この仕組みをRetrieval-Augmuented Generation(RAG)といい、これを利用してチャットボットを作成しました。
思った通りの返答を得るのがけっこうむずかしくて、「こんな商品が欲しい!!!」みたいなことをハッキリと言ったのに全然関係ない商品を大量に提示してきて苦労しました。前日までに作成したテーブルデータにちょっと変更を加えたり、抽出したデータと一緒に生成AIに投げるプロンプトの方をいろいろ試してみたりしてできるだけブラッシュアップしました。
そのほか非技術的なこと
朝会、1on1、勉強会など定期的に社員さんとお話しできる機会があった
SQLとかでわからない箇所など技術的な質問はもちろん、同じチームのこの人がめっちゃつよつよですごい、とかのラフな雑談もしてました。
心理的安全性が高くて気軽にチャレンジできた
「知らないことに取り組んでいるので、わからない・できないのはあたりまえ」という文化が良く根付いているなと感じました。そのうえで、「作業ログを残して試行錯誤の形跡を残しておくと後で質問したりするときに役に立つ」「オンラインだと感情が見えにくいから、些細なことでも自己開示して意識的にコミュニケーションをとるべき」など、ソフトスキルの面でもサポートしてくれたので、インターン生としては非常にやりやすかったです。
焼肉弁当がおいしかった
最終日のお昼ご飯に叙々苑の焼肉弁当が出ました。マジでおいしかったです。

インターン全体を通しての学び
データ基盤構築/分析の、実際に仕事を進める一連の流れを体験して、仕事としての解像度が段違いに高まりました。インターンに参加するまでは、そもそも「データをデータウェアハウスに取り込む」と「データウェアハウス内でデータを変換する」というデータ基盤構築のフェーズを認識すらしていなかったので、ここの重要さを理解して実際に取り組むことができたという体験はとても価値があったと思います。
また、ただ実装するだけでなく「ユーザーが真に求めていることはどんなことだろう???」という視点を常に持って設計をするという経験もできました。
他にも、「仮説を立てる→検証する→検証結果を経て次の仮説を立てる」のサイクルをたくさん回すことや、生成AIを鵜呑みにせず自ら公式ドキュメントなどの一次情報をあたることの重要さを学びました。
最後に
技術的な学びだけにとどまらず、DATUM STUDIOという会社や社員さんの雰囲気について知ることもできてよかったです。社員さんは、日々目まぐるしく移り変わるさまざまな技術に対して貪欲に、そして真摯に向き合う技術的好奇心が強い方が多いなと感じました。
基盤構築から分析まで一気にできるので、データサイエンス・エンジニアリングが気になっているけど仕事のイメージがつかめていない、というような人にオススメです。特にデータエンジニアリングのパートは他ではなかなか体験できないので、非常に貴重な経験になると思います。
同じチームのメンバーのみんな、メンターの方、その他関わってくださった社員の方々、本当にありがとうございました!!!
ICPC 国内予選 2024 参加記 (haruki視点)
こんにちは。harukiと申します。
先日開催された国際大学対抗プログラミングコンテストICPC2024の国内予選にQiToY、Kei83、haruki4936のチーム「TECHNICOLORZ」で出場し、363チーム中34位という成績を残しアジア大会への切符をつかみ取りました!!!
ICPCって???
6~7問程度の問題が出題され、3時間の競技時間でどれだけ多く、早く、正確に解けるかを3人1組のチームで競います。問題の読解力、解法の考案力、そしてプログラミング能力が勝敗のポイントになります。
3分でわかるICPC | ICPC 国際大学対抗プログラミングコンテストより引用しました。出題される問題の例はここから見られます。
チームメンバー
- QiToY
学部4年生。ICPCの参加資格がある東京理科大の人の中で一番AtCoderのレートが高い。
- Kei83
学部3年生。僕が当時サークルの競プロ班班長だったときにサークルに入ってきてくれた。
- haruki4936
修士1年生。よく寝坊する。
当日までの流れ
チーム結成
国内大会の70日前くらいに、Keiくんから一緒に出ませんかと誘われました。もうそんな時期かとびっくりしながら了承し、もう1人のメンバーを探すことに。
去年はICPCに出ておらず、一昨年同じチームで出てたhexaさん、srtubakiさんのうちどちらかを誘おうと思いましたが、hexaさんは年齢的に出場資格なし、srtubakiさんは1年ぐらいAtCoderをやってなかったので、もう競プロやめてしまったのかーと思い、別の人を誘おうと考えます。(しかし、のちにsrtubakiさんから「今年はICPCのチームメンバー探していたりしますか?」と聞かれて、出場する意思があったことが判明しました。その節は本当にごめんなさい…)
とりあえず強い人を誘ってみようかという気持ちでQiToYさんに声をかけたらおっけーを貰えて、チームが結成されました。
チーム名決定
チーム名を決める担当だったので、いい感じにかっこいい名前を探しました。結果、
この曲のタイトルをベースに、チームであることを表す複数形のSをもじったZを末尾に足した「TECHNICOLORZ」が誕生しました。Snail's Houseさんの曲、かっこよくてかわいいのでおすすめです。
チーム練習
Aizu Online JudgeのArenaでのバーチャルコンテストをオンラインで集まって1回、模擬国内大会をオフラインで集まって1回やりました。バーチャルコンテストの方は国内予選通過ボーダーを超えてたのでよかったです。
一方模擬国内の方は、僕が遅刻した影響でプリンターが開始1分前まで接続できなかったり、誤読して別の問題を考えてしまったり、1つの問題に固執してしまったりでうまくいかず、結果的に120秒差でボーダーを下回っていたので、結構へこみました。
個人練習
構文解析をできる人がチームにいなかったので、国内大会2日前に構文解析の問題を5問くらい解いて、再帰関数で実装できる(解析木を使わなくても解ける)やさしめの構文解析はできるようにしておきました。
前日
寝る前に何問か解いてから床に就きましたが、ベタに緊張して全然寝られなかったです。たぶん2時間くらいベッドの上で頭の中にあるICPCの過去問を考察していました。
当日の流れ
開始3時間半前~1時間半前
当日はみんなで監督の先生のところに行って、会場として抑えてあった教室の鍵をあけてもらう予定でしたが、またも遅刻したので2人に任せてしまいました。プリンターとかの運搬もお願いしちゃって本当に申し訳ない…

みんな集まった後は、リハーサルの問題を解いたり、本番で使う僕のキーボードでのタイピング練習とかをしてもらいました。
開始1時間半前~開始まで
リハーサルが終わって、実装の小技とかをQiToYさんから教えてもらったり、本番用のディレクトリ作ったり、軽い軽食とかを買いに行きました。
開始15分くらい前
ICPCに出ることを大学垢でツイートしたり、研究室にリアルタイム順位表を表示した状態のiPadを置いて「プログラミングコンテスト出るから応援してね!!!」みたいなことを触れ回ってました。あとから聞いたんですがiPadの方はスリープ時間が設定されてて15分後には消えてたらしいです。残念…
開始0分~4分
問題が出ました。今年はこんな感じの問題セットでした。
Keiくんと僕でAとB、QiToYさんでCを解くと決めてたので、A問題から目を通します。Aは読みやすくて解法も簡単なやさしい問題だったのですぐに実装にかかります。横で自分が画面を見ながらKeiくんに実装してもらい、スムーズにCorrect Answerを出してくれました。
開始4分~16分
Aが通ったのでBを見ようとしますが、QiToYさんから「CはこないだのABC-Cといっしょだけど座標の取り方が違うからうまくできない」と言っていたので、BとCをswapします。Cに目を通すと、BFSで1つずつ見て行っても十分間に合う制約だったので、数学的な解法でやって沼るのを防ぐためにもBFSで書こうと方針が立ちました。
開始16分~25分
B問題をKeiくんとQiToYさんが通してくれたようなので、Cの実装に取り掛かります。二次元配列で最短距離を管理できるのに、なぜかmapで管理するプログラムを組んだので、余計なlogがついて実行に30秒くらいかかってました。もしかしてバカ???
提出すると、Correct Answerが出ます。
開始25分~1時間くらい
Cの実装をしている間に、KeiくんとQiToYさんの2人がDの考察をしてくれていたので、解法の概要を聞きます。概要は「進む距離が長くて素朴な愚直では間に合わないけど、障害物のある範囲が小さいから、愚直に回していってループに入るか、範囲外に出て行ってそのまま直進し続けるかのどちらか」とのこと。なるほど、実装が重そう…。
とりあえず解法はつかめたので、横でKeiくんに見てもらいながら自分が実装、QiToYさんにEを考えてもらうことにしました。
開始1時間くらい~1時間24分
Dの実装を進めていたら、QiToYさんがEを解けたっぽいので実装したいとのことで、実装の残りを詳細に詰めるためにDのプログラムを印刷して、PCを渡しました。
しばらくして、やっぱりまだなんか解けてなさそうといっていたので、まだDを実装する時間があるからゆっくり考えて大丈夫ということを伝えて、Dの実装に戻ります。Keiくんと壁打ちしながら実装を進めたり、バグをつぶしたりして、なんとかsampleを合わせます。
結構汚い実装だったので、バグを埋め込んでないでくれと祈りながら提出すると、無事に一発でCorrect Answerが出ました。
開始1時間24分~1時間50分くらい
4完した時点で順位表を見ると67位で、しかも同大学のチーム「OSMA」がすでに5完していたので、これはもう1問解かないとアジアにはいけないなーと感じていました。QiToYさんのEの考察・実装はある程度進んでそうだったので、そっちは完全にお任せしてKeiくんと一緒にFを考えることにしました。
Fを見ると、どんどん球が反射していく様子からビリヤード台を2回折り返しての単位格子が無限に広がっている座標系を考えたくなる気持ちになりますが、球、コイン、穴が無限個に増えてしまうのでどうしようか…となってしまいました。
開始1時間50分~1時間59分
Fをいろいろ考えているうちに、QiToYさんのEの実装が終わってsampleも通ることを確認したようで、テストケースを落としてプログラムを走らせていました。出力も終わり、頼む正解してくれと祈りながら提出してもらうと、無事にCorrect Answerが出ました!!!
Congratulationのメッセージが見えたときはめちゃくちゃうれしくてすごい大声で叫んじゃいました。もうほんとにうれしかった。
開始1時間59分~2時間30分くらい
順位表を見ると25位になっており、同大学のほかのチームの状況を加味してもおそらくアジア進出が確定したことがわかりました。気分的にはもうまともに考察できないくらい興奮してましたが、あと1時間くらいはあるので、できるならまだ正解したいねということで、冷静になってFをみんなで考えることに。
ここで、「コインに当たることのできる方向は高々4方向なので、答えとなる球も高々4つしかないから、コインから逆にシミュレーションすれば間に合うんじゃない???」と気づきました。しかも、反射する軌道として存在するのは高々個なので、この軌道に球が存在するか、していないなら次にクッションに反射する座標はどこかが高速にわかれば解くことができます。
開始2時間30分~3時間00分くらい
気づいた方針をもとにして、KeiくんとQiToYさんに横で見てもらいながら僕が実装することになりました。しかし、どう実装するかを詰めることができず、時間切れになってしまいました。
終了後

チームみんなで最終順位が34位であること、そして無事に予選を通過できることを確認しました!!!本当にうれしかったです。
終わった後は、学科の同期の友人たちからお祝いの言葉をもらったりしながら、教室を片付けて、チームのみんなでお寿司を食べに行って解散しました。
感想

(https://icpc-replay.vercel.appから)
僕が主に実装、Keiくんが実装のサポート、QiToYさんが主に考察という具合に、チームとしていい感じに分担できていてよかったです。特に、CDの実装を僕とKeiくんが受け持って、QiToYさんがEの考察に集中できる状況を作れたのが大きなポイントだったと思います。
また、「自分がサークルの班長だった時に競技プログラミングを始めた後輩を、アジア大会に連れていく」という主人公ムーブにこっそりあこがれていたので、今回それが実現してうれしかったです。
あと、僕たちのほかに東京理科大のチーム「OSMA」も予選を通過していて、同じ年にうちの大学からアジア大会に2チーム出るのは初めてだと思います(2014年くらいまでざっと見た感じでは)。自分がその一端に加わることができたという意味でも、こんなすごい年にリアルタイムで遭遇できて光栄です。
最後に、国内予選に参加した、そして運営に携わってくださったみなさん、お疲れさまでした。そして横浜にいくみなさんはまた年末にお会いしましょう。
ここまで読んでくださってありがとうございました~~~
R03年度 2021年度 材料の力学1 大問1の解説
こんにちは,harukiです。材料の力学の第二回中間試験が明日に迫っていると聞いて,多分はりの曲げの問題が出ると考えたので,したためていた去年度の試験問題の解答解説を急遽加筆して公開することにしました。ほとんど推敲していない故,お見苦しい点が多いと思いますが,何卒ご了承ください。
-----------------------------------------------------------------------------------
こんにちは。2021年度の材料の力学1の問題を解説していきます。間違いなどみつけたらここにコメントで書き込んでくださるとうれしいです。アカウントとか作らないでだれでも書けるようにしてあるので…
この記事は「ん~あんまり材料力学とくいじゃないかも」という人向けに書いたので,わかる人にとってはやや冗長な表現になっているかもしれません,ご留意ください。どんなに時間がなくてもこれはさすがに書いた方がいいかな?と思ったことは赤字で示したので,参考にしてみてください。また,2,3回検算をおこないましたが,完全な正確性は保証しかねますので,そこは宜しくお願いします。

略解
1(1)反力 ,反モーメント
(2)のとき
のとき
(3)
(4)
2.
3.
大問1 はりの曲げ
固定支持された片持ちばりに部分的に等分布荷重がかかった問題です。固定端が存在し,かつ等分布荷重が部分的なので,比較的複雑な計算を要し,息切れしない体力と正確な計算力が求められます。誘導が丁寧なのがうれしいです。
(1)反力と反モーメント
はりに働く力の総和と,任意の点におけるモーメントの総和はになっています。そうでないと,はりはどこかに動いていったり,回転してしまいます。よってはり全体での力のつり合いの式とモーメントのつり合いの式を立てて,連立して解きましょう。未知数が反力と反モーメントの2つなので,これで十分です。
力とモーメントのつり合いの式を,反力を,反モーメントを
とおいて立式していきます。力のつり合いの式は反力と等分布荷重による2つの力が釣り合っていることから立てられます。モーメントの方は,反力によるモーメント,等分布荷重によるモーメント,反モーメントの3つがありますが,固定端回りで立式すると反力のモーメントが無視できます。また,等分布荷重によるモーメントの大きさは,固定端から
はなれた微小区間
にかかるモーメントを
の範囲で寄せ集めると考えると
です。

以上よりつり合いの2式は
力のつり合い
モーメントのつり合い
となり,計算するとが得られます。
(2)BMDの計算
BMDを求めるときは,ある断面から片側だけを見るのが鉄則です。今回は座標にある断面から左側だけを見て計算していきます。また,別解として後程紹介しますが,自由端から座標系を取り直すやり方も存在します。いずれにせよ
と
で場合分けが必要になります。
その前に,各物理量に対して正の向きを定めておく必要があります。それぞれの正の向きは一般的に,モーメントは反時計回り,力は下向き,(全然使いませんが)等分布荷重は上向きと決められています。このように設定しておくと,SFDやBMD(あとででてきます)を求める時も混乱せずに済みます。これを一つにまとめたのが以下の図です。

髪の毛が逆立っているように見えることから,僕は勝手に「サイヤ人の買い物」って覚えてました。ぽくないですか。
での曲げモーメントを
とすると,
,固定端の反力によるモーメント,曲げモーメント,また等分布荷重によるモーメントの合計が釣り合っていればよいです。これを式に起こすと,
(i)のとき

画像の中のきったねえ「そ」みたいな字はのつもりです,ごめんね
座標から左側でのモーメントのつり合いの式は
となり,
これをについて整理すると
となります。
(ii)のとき

座標から左側でのモーメントのつり合いの式は
となり,
これをについて整理すると
となります。
以上(i)(ii)をまとめると,
のとき
のとき
となり,これが答えです。
(別解)自由端から新しく座標系をとるとき
以下のように座標系 をとります。

このとき, です。やることは先ほどの座標軸の時と変わりませんが,自由端の側だけをみていればいいので反力と反モーメントを最後まで考慮しなくてよいという大きな利点があります。これにより,
と,(かかっている場合は)等分布荷重によるモーメントの2つだけを考慮すればよいので,ふつうにやるよりも格段に楽ができます。
(i)のとき

の他にかかっている力はないので,
となります。
(ii)のとき

座標から左側でのモーメントのつり合いの式は
となり,
これを計算してについて整理すると
となります。
ここで を代入すると,
となります。
実はこれは固定端の時の(i)を平方完成したものと同じです。よって,同じ答えを得られました。また,の時の境界条件がやや異なりますが,どちらでも
となるので問題ないです。
(3)はりに作用する最大応力
はりに作用する曲げ応力は,曲げモーメント
,中立軸(断面の図心を通る軸,均一の素材で作られている場合は図心=重心になります)からの距離
,断面二次モーメント
として,
と表されます。これは部材のどの断面をみているか,また同じ断面でも中立軸からの距離によって変わりますが,断面が常に同じ形である場合
は定数とみなせるので,積
を最大にすることを考えればよいです。加えて,
と
は独立に選べるので,それぞれの取りうる値の範囲を調べれば
の最大値がわかります。
まず,の取りうる範囲を考えてみましょう。(2)より
のときは0なので,残りの
のときを考えます。
の様子を探るために
について平方完成をすると,
となり,これは頂点で上に凸の放物線なので,
の範囲では最大値
,最小値
を取ります。よって
全体では,
の値を取ることがわかりました。
次にの取りうる範囲を考えると,断面は一辺
の正方形となっており,中立軸は正方形を二分するようにちょうどまんなかに存在しているので,
は
の値を取ります。
最後にを求めましょう。断面二次モーメントは断面領域を
とすると
と表せ,被積分式が
のみに依存しているので,横に細長く正方形を細かく切って積分すると求められます。領域の積分をy軸方向の積分に変換すると,
で,積分範囲は
なので,
となります。これを計算すると,の値を取ることが分かり,これは
のみに依存する定数です。
これでパーツはそろったので,あとはうまく組み合わせましょう。と
の範囲で最大になる
は
,
のときです。これはちょっと感覚的ですが,
が確定しているので,
も
もできるだけ負に大きく振ったほうが積が大きくなるからという理由からです。というわけで,
も加味すると,
とわかりました。
(4)はりのたわみ
はりのたわみときたら,たわみ曲線の基礎方程式
からスタートしましょう。はそれぞれ弾性率(ヤング率),断面二次モーメント,曲げモーメントです。また
は部材の座標
におけるたわみを表し,一階微分した
は座標
におけるたわみ角を表します。
では,右端のたわみはどうやって求めればよいでしょうか。等分布荷重がかかっているところとかかっていないところで場合分けしてそれぞれのたわみ曲線を求めることで計算することもできますが,求めやすい地点と地点の変分を足し合わせていくことで求めることを考えてみましょう。今, でのたわみを基準としたときの
でのたわみを
,
でのたわみを基準としたときの
でのたわみを
とします。以下の図を見てください。

はりがたわんで斜めになったので右端は未満になるはずですが,たわみははりの長さに対して微小であることが暗黙の了解なので無視しています。この図を見ると,
であること,また
となることがよくわかりますね。
つづいて,右側の青色の線で囲まれた直角三角形に着目してみましょう。

はりに対して]の区間では曲げモーメントがかかっていないことからはりはこの区間ではまっすぐなので,
方向への増分と
でのはりの傾き,つまり
がわかれば
方向の増分である
が,
という具合にわかります。
以上の議論より,右端のたわみはこのような式で求められることがわかりました。
よって固定端から等分布荷重がかかっている末端までの区間(]を満たす区間)での
と,
での
が求まればこの問題を解くことが出来,これらは
を2回積分すると,
,
の順で得ることが出来ます。実際に積分すると,
\begin{eqnarray*}
\displaystyle \frac{dy}{dx} &=& \int \frac{d^2y}{dx^2} = \int -\frac{M(x)}{EI} \\ &=& -\frac{1}{EI} \int -\frac{w_0}{2}x^2+\frac{w_0l}{2}x-\frac{w_0l^2}{8} \; dx \\ &=&
-\frac{1}{EI}\left(-\frac{w_0}{6}x^3 + \frac{w_0l}{4}x^2 - \frac{w_0l^2}{8}x\right) + C_1
\end{eqnarray*}
積分の不定性により積分定数が生まれるので,どこかしら自明な箇所を特殊解として取ってくる必要があります。今回の場合は,固定端でたわみ,たわみ角が生じないことから,で
が特殊解になり,これを代入すると
が得られます。したがって,
\begin{eqnarray*}
\displaystyle \frac{dy}{dx} =
-\frac{1}{EI}\left(-\frac{w_0}{6}x^3 + \frac{w_0l}{4}x^2 - \frac{w_0l^2}{8}x\right)
\end{eqnarray*}
(数式の表示の都合でうまく着色できなかったんですけど,書くべき大事なことです)
となります。再びこれを積分すると,
\begin{eqnarray*}
\displaystyle y &=& \int \frac{dy}{dx} \\ &=& -\frac{1}{EI} \int \left(-\frac{w_0}{6}x^3 + \frac{w_0l}{4}x^2 - \frac{w_0l^2}{8}x\right) \\ &=& -\frac{1}{EI}\left(-\frac{w_0}{24}x^4 + \frac{w_0l}{12}x^3 -\frac{w_0l^2}{16}x^2\right) + C_2
\end{eqnarray*}
となり,同様にで
が特殊解になり,これを代入すると
が得られます。したがって,
\begin{eqnarray*}
\displaystyle y &=&-\frac{1}{EI}\left(-\frac{w_0}{24}x^4 + \frac{w_0l}{12}x^3 -\frac{w_0l^2}{16}x^2\right)
\end{eqnarray*}
(ここも書くべき大事なことです)
となるので,あとは式に注意深く代入しましょう。
\begin{eqnarray*}\displaystyle y(l) &=& y\left(\frac{l}{2}\right) + \frac{l}{2} \cdot \left . \frac{dy}{dx}\right|_{x=\frac{l}{2}} \\ &=& \frac{w_0l^4}{128EI} + \frac{l}{2} \cdot \frac{w_0l^3}{48EI} \\ &=& \frac{7w_0l^4}{384EI}
\end{eqnarray*}
(大事なことです)
となりますが,は与えられている文字でないので,
を代入するのをお忘れなく。答えは
となります。
大問2 熱応力
熱膨張による不静定問題です。熱膨張の類題を解いたことがあって,流れを把握していれば,難しすぎて解けないよと手が止まってしまう問題ではありません。こんな偉そうなこといってて本番一文字もかけなかったのは内緒
大問3 丸棒のねじり
それぞれの問題同士にあまり関連性がなく,どちらかというと小問集合のような感じの大問です。特に(2)は頻出なので,ぜひ押さえておきたいです。
(1)荷重による底面の変位
(2)トルクによる最大せん断応力
(3)丸棒に作用する最大の最大主応力
ICPC 国内予選 2022 参加記 (haruki視点)
こんにちは。harukiと申します。初めての参加記です。
国際大学対抗プログラミングコンテストにへきささん,白椿さん,私harukiのチームSpring Curveで出場し,298チーム中35位でアジア大会への切符をつかみ取りました!!!
ICPCって???
6~7問程度の問題が出題され、3時間の競技時間でどれだけ多く、早く、正確に解けるかを3人1組のチームで競います。問題の読解力、解法の考案力、そしてプログラミング能力が勝敗のポイントになります。
3分でわかるICPC | ICPC 国際大学対抗プログラミングコンテストより引用しました。出題される問題の例はここから見られます。
当日の流れ
ここからは当日の時系列順にどんな感じだったかお伝えしていきますね。
開始8時間前~2時間前
同じサークルに所属してる2年前から交流のある人たちと初めて会っておしゃべりしたり,今年はじめて出場する1年生たちのリハーサルの問題提出のお手伝いなどをしていました。リハーサル中の午前9時の時点で1年生チームの提出が0だったので,個別にdiscordのdmで連絡を取ってみたんですが,やはりかなり詰まっていたようで,ICPCの提出形式の難しさをひしひしと感じました。
開始2時間前~1時間前
授業を受けているキャンパスとは別のキャンパスで集合してみんなで1つの教室を借りて解くことになっていたので,電車で移動を開始します。東京の電車路線は,千葉の奥地に生息している私にとっては非常に難解で,乗りかえを1度間違えてしまったのですが,5分後に同じ行先の電車がすぐきて感動しました。さすが大都会東京ですね。このミスによる遅れはわずかなものでしたが,気分的に少しでも早く着きたかったので,少し値は張ってしまいますがつくばエクスプレスに乗ることで,無事予定した時間通りに集合場所の最寄り駅に着くことが出来ました。
開始1時間前
10個くらいある駅の出口に迷いながらもなんとか駅を脱出し,集合教室に到着しました。チームメンバーのお二方はすでに到着しており,PCの前で競プロの問題を眺めていて気合十分といった感じで,私も自然とやる気が湧いてきました。そこからは軽く雑談したり,方眼紙とか画用紙とかの考察道具の話で盛り上がったり,なにか生協でお菓子でも買おうかみたいな話をして,荷物番をかねて交替で飲み物等買い出しに行きました。
開始15分くらい前
先ほどの考察道具の話の中で「トランプもあったらいいよね」みたいな話が出ていたんですが,買い出しから帰ってきた白椿さんの手にはトランプが握られていました。行動力あるな~と思う反面トランプの問題なんてほんとに出るのかな…と思っていました (が,なんと実際に出題されました。もしかして事前に問題知ってた???)。その後はドキドキしながら問題が配信されるのを待ちます…
開始0分~6分
問題が配信されました。今年はこんな感じの問題セットでした。
例年開始してすぐはサーバーがへばってしまうので,今年もどうせ落ちるやろと思っていたらスムーズに始まってびっくりしました。解く問題はAtCoderのレートを加味して事前に私がA,白椿さんがB,へきささんがCと決めていたので,担当であるAに取り掛かります。ICPCは誤答時のペナルティが20分=1200秒とかなり重いので,くれぐれもミスをしないよう多少スピードを犠牲にして丁寧に実装することを心がけました。そのかいあって6分00秒で一発AC(正解)することができました。結構早いかなと思っていたんですが,このとき75位くらいだったので,みんな度胸があるなあと思っていました。同時に,この問題の提出コードが国内予選にて私が書いた最後のコードとなりました。(プログラミングコンテストとは???)
開始6分~20分
練習の時は,Aが終わったらCをへきささんと一緒に解いていたので,それにならってC問題に取り掛かりました。問題をひとしきり読み終えて,練習しても休んでもどんどん効果が増幅していくので,練習はできるだけまとめてガッツリやる,休息はできるだけ分散してこまめに取るというのが最適だろうなとわかりました。そこでという制約から,休憩を取る回数を全探索すればよいことがわかり,その旨をへきささんに伝えると,一瞬ですべてを理解したようで即座に実装に取り掛かり,開始20分くらいでACしてくれました。僕はへきささんに言われるまで,連続する奇数の和=平方数になることを完全に忘れていたので,自分一人では絶対に解けなかったと思うので本当に助かりました。
開始20分~30分くらい
白椿さんがB問題で苦戦していたようなので,みんなで解こうかという話になりましたが,白椿さんが「人数が増えてどうこうなる問題ではない」と言っていたので,そのままBはお任せしてへきささんと2人でD問題に行くことにしました。お恥ずかしいことに,D問題はこの後開始1時間30分くらいまでずっと誤読して別の問題を考えることになります(ゲートに並んでいるうち最前列にいる人たちの番号でソートして会場の入場列に並ばせる,というのをゲートに並んでいる人がいなくなるまで繰り返すのかと思っていました)。へきささんが入場希望者の列のうち必ず切らなければならないところの条件を教室の黒板を用いて共有してくれましたが,正直なところそれを咀嚼して理解するのがやっとで,その先の考察にはなかなか進めていませんでした。
開始30分~40分
白椿さんがサンプルを一致させてB問題を提出するもWA(誤答)だったようなので,私もB問題を考えることになりました。そこで,私の問題・解法の把握時間短縮と,白椿さん自身が説明することで何かミスに気付くかもしれない(ベアプログラミングってやつですね)のをかねて,問題と誤答だったコードの挙動を説明していただきました。案の定すぐに間違いに気づいたようで,即座に修正してACしてくれました。
開始40分~1時間20分くらい?
ABCの3問が解き終わったので全員でDに取り掛かります。この時点で確か45位くらいで,Dも少しずつ通されていたので,このDの出来でアジア大会に行けるか否かが決まると確信しました。考察は「必ず切らなきゃいけないところを切って,あとは自由に切れるはずだけど,切ってはいけないところが存在していて,そうなる条件がわからない」というところまで来ていたのですが,そこから先がなかなか浮かびません。へきささんが切ってはいけないところの条件を仮定し,一度提出しますがWAでした。
開始1時間20分くらい?~1時間50分
引き続き切ってはいけないところの条件を考え続けるのですが,隣接している要素の大小しか考えていなかったせいで迷走します(これでは解けない)。ここでようやく誤読に気が付き,今までの考察がほとんどパアになり愕然としました。しかしへきささんが愚直解法と比較することで,同じ区間で前にいる人の番号の最大値によって切れるか切れないかが判定できることに気が付いたようで,それを実装してもらって祈りながら提出して_______AC!!!。この時点で29位でした。
開始1時間50分~終了
Dを解き終わってあと70分ということで,残り時間は多少解かれているEとFのどちらかに全振りしようということになったので,チームみんなでEとFに目を通して,かっこ列っぽいねとすぐわかったEに賭けることに。配置を1つ構成すればよいということで,何かいい方法がないかを模索していましたが,私はこの後はひたすら時間を溶かし続けました。途中へきささんがGを見に行ったりしていましたが,大きな収穫はなくそのまま競技時間が終了します。
終了後
順位表をみて大学内1位で35位だったので,予選通過が確定し,やったねーという感じに。その後は感想会と晩御飯を兼ねてファミレスで食事をとりました。最初はサイゼリヤでやろうかとなり,最寄りの店舗に向かったのですが,まさかの満席でびっくりです。金曜の夜をなめてましたね。サイゼリヤは無理そうだったので,近くにあったロイヤルホストというところに初めて行ったのですが値段が高くてこれまたびっくりしました。
感想
普段の練習の時はA問題を解くだけ解いてあとは白椿さんとへきささんが活躍するという回がほとんどでかなり申し訳なかったので,本番ではC問題でわずかながら貢献できてよかったです。またこれはチームとは直接関係はないですが,所属しているサークルの新入生含むすべてのチームが1問以上正解できていたので,サークルから出場する全チームのコーチとの連絡役となった身としては,みんなでICPCにでてよかったな~としみじみ思いました。
とはいえ良かった点だけではなく,練習や本番を通して知識・実装力がお二方に対して圧倒的に劣っているなと感じるので,そこは今後の課題かなと感じています。
何はともあれ3回目のICPC出場にして初の予選通過!しかも今年はオンサイトで開催っぽいので,すっごく楽しみです!アジアに出場予定の方,よろしくお願いします!そして国内予選に出られたすべての方々,お疲れさまでした~!!!
実験レポートRTAのススメ
こんにちは。haruki / おるざと と申します。
大学生の皆さん,実験をやっていますでしょうか???実験の授業は単位の割に割かなくちゃいけない時間が見合わず,その癖に必修になっているクソ科目として悪名高いですが,時間がかかる主な原因は実験レポートを作成しなければならないことだと思います。
そこで,できるだけ時間をかけずに,そして楽しく実験レポートをできる方法である実験レポートRTAなるものをご紹介したいと思います。「タイム短縮のコツ」のところでレポートを書く際の小ワザなども掲載しているので,読んでる途中で誰がこんなバカなことやるかボケが,と思った方もぜひ最後まで見てみてください。
RTAって?
RTAとは,Real Time Attackの略称のことです。Real Timeは実時間,そしてTime Attackは時間を攻めるということなので,つまり「誰が一番はやくできるかみんなで競おうね」ということです。つまり,実験レポートRTAにおいては,同じ題目の実験レポートを書き上げた世界の誰よりも早く実験レポートを書き上げることが目標となります。
流れ
実験レポートRTAがどのようなものかわかったところで,実際にどのように行えばよいのかを時系列の流れに沿ってみていきましょう。
実験開始~実験終了
実験中はまじめに取り組みましょう。なにか操作をするときはそれの意味をよく考えたり,TAさんからなにか問われたら真剣に考察してみたりすることが大事です。どうせだらだらやってもすぐ帰れるわけでもないし,適当にやってるとあんまり記憶に残らず後で思い返すのがたいへんです。ここでキッチリやっておくと後々がかなり楽になります。
また,実験中はTAさんに何でも聞けるすごい時間です。TAさんは僕らよりいくつも先輩で,大体やさしく接してくれるし,いろんなことを知っています。実験のテキストに載ってることでわからないところや,学校生活(研究室のこととか)を聞いてみましょう。いろいろためになる情報を教えて下さると思います。
実験終了直後
終了直後は図書館に行って参考文献を借りてくるのがよいでしょう(学科によってはいらないのかな?)この時,ある程度知りたいことに目星をつけておくことが重要です。背景などは大体どの本の最初の方でもかけるので,むしろ考察の裏付けとなる部分の補強に使う参考文献を探すのに注力したほうがよく,重要なキーワードをすでに知っている場合は後ろの索引で該当ページを調べ,ほしい情報がのっているかをその場で確認するとなおよしです(大した情報ものっていない本を持って帰ったりまた持ってきたりするのはけっこうつらいです)。
実験終了直後~実験レポート提出2日前
入念に下準備をしたところで,いったん実験についてはわすれてしまって結構です。実験が終わって気の知れた友だちとご飯を食べに行くもよし,おうちに帰ってゆっくり休むもよしです。しばらく実験をしなくてよいという優越感に思う存分浸りましょう。
実験レポート提出2日前~実験レポート提出1日前
いっぱい寝ましょう。次の日は結構な体力を使うことになります。しっかりとした準備がよいレポートを生みます。また,ある程度の書き上げる時間を見積もっておきましょう(僕は9,12,15...など,3時間単位でざっくり概算しています)。
実験レポート提出1日前~見積もった時間を基に提出締め切りから逆算した時間
ここまでは普通に過ごしていて大丈夫です。学校などで友だちに会った際は実験レポートRTAを敢行する旨をそれとなく伝えてみましょう。「がんばってね」「応援してるぞ」などのやさしい言葉をかけてくれる人もいれば,「愚か者が」「間に合わないで留年しろ」などのちくちく言葉をかけてくるカスみたいな輩もいるので,今後誰と長くお付き合いしていきたいかを考えるよい判断材料になるでしょう。
見積もった時間を基に提出締め切りから逆算した時間~そこから1時間程度
さあ,現実と向き合う時がやってきました。泣こうが喚こうが,これからそう遠くない未来にやってくる締め切りにレポート作成が間に合わなければ留年に大きく近づくこととなります。その事実の重みを感じながら,レポートを書き始めましょう。実験中~実験直後に頑張っていれば,ある程度はつまることなく進めることができるはずです。
1時間経過~5時間経過
経験で言うと,この辺りはさっきまでのペースが嘘であると思うくらいにマジでダレます。YouTubeを見たり,Twitterを無駄に眺めたり,布団に入ってじっとしたりすることが多いです。やらなきゃいけないのになぜか先延ばしにするという,何の生産性もない時間になります。
5時間経過~締め切り2時間半前
ここら辺から,「あれ,このままだとヤバくね???」ということに気が付きます。やっと本格的に手を動かし始める時間ですが,実験レポート作成というのは1週間(これも学科によって違うかも)も時間が設けられている課題ですから,数時間考えた程度では太刀打ちできません。何を書けばいいのかよくわからないまま時間がどんどん過ぎていきます。
締め切り2時間半前~締め切り
「このままでは留年しちゃう,でもなに書けばいいかわからない!どうしようどうしようどうしよう!」という考えで頭がいっぱいという極限状態に陥り,脳みそが覚醒します。すべてのわからなかったことがわかり,森羅万象を解き明かすことが出来るのもこの時間です。これまでわからないなりにもある程度時間をかけていれば,バラバラだった知識が点と点を結ぶようにつながり,問われていることに対する答えを頭の中で高速に,そして論理的に構築することができるはずです。
またこのあたりになると,残り工程それぞれにかかる時間をかなり正確に見積もることが出来ているはずですが,たまに見積時間と進捗がずれてしまうことがあります。しかし今は締め切り直前,ちゃんと後ろの方でリカバリーできるので,あきらめずに突き進みましょう。完全な持論ですが,締め切りまでの時間をとおくと,その時に出せるパフォーマンスは
だと思っています。(これだと,
で積分した時に正の無限大に発散してしまい締め切り前ならいつから始めても終わることになってしまいますが…)
締め切り~締め切り終了後
お疲れさまでした。いったんここで一区切りです。このあと授業がなければ,仮眠をとってもよいでしょう。不運にも授業があるならば,睡眠と同時並行で授業をうける「睡眠学習」によって代替できます。演習(学科によって(ry もわすれないようにしてください。演習問題は労力に見合わず実験レポートと同程度の配点を占めるらしいのでここも入念にやりましょう。
タイム短縮のコツ
自分に合ったチャートを練ろう
チャートとは,「レポート完成までにどの項目をどの順番で書き上げるか」のことです。例として僕は背景,方法,結果,考察,結論,参考文献,課題の7項目(学科 (ry があるときは以下のチャートを組んでいます。
考察をチラ見→方法→結果→考察→課題→背景→結論→参考文献
いきなり考察を見るのは,今自分が解くべき問題が何であるかを明確にするためです。その後方法や結果を書いている途中で問題に対する答えのアプローチが浮かぶことも多いです。
また,背景を後半に持ってくるのは,結果を整理して考察を行ってからの方がある程度この実験で何をしていたのかがわかって書きやすいからです。実験レポートで一番最初に章立てされているからと言って,自分で考えて実験しようと思ってやっているわけでもない学生実験においてこれを最初に書くのはなかなか難しいんじゃないかと思っています。
もちろんチャートは自分好みに考えて組んだ方がいいと思うし,僕もまだ模索中です。
数式を書く際はtex表記で
皆さんはwordで数式を入力する時どうやってやっていますか?なんかテンプレ―トみたいなやつ(ロ/ロみたいな)を使ってもいいですが,tex(てふ)表記というのが便利です。例えば分数は\frac{y}{x}と入力すればマウスとキーボードを行ったり来たりすることなくキーボード上だけで完結することが出来ます。キーボードとマウス間を往復する動きってめんどうだし,かなりのタイムロスなんですよね。これが出来るようになると,数式入力の時のストレスがぐっと軽減されると思います。入力したい数式の打ち方がわからない場合は「tex 積分」などで調べるといっぱい出てくるのでそれらを参考にしながら入力してみましょう。
頻繁に使う「打つのが面倒くさい言葉」はソフトの力を借りよう
実験レポートでは同じ単語がいっぱい出てくることが良くあります。でもそのたんびに「ヘキサシアニド鉄(III)カリウム」とかって打ってたら疲れちゃいますよね。そこでクリップボード(Ctrl + Cで保存したものを保持しておくところ)の履歴を保存してくれるソフトを用いて,いくつかのよく使う単語を素早く打てるようにしています。このソフトがべんりで,おすすめです。
ショートカットキーをいっぱい使おう
ショートカットキーは神です。Ctrl + C,Ctrl + Vでコピー&ペーストをはじめとしたショートカットキーはかゆい所に手が届く非常に便利な機能です。参考までにあんまり知られてないかもだけど僕が便利だと思っているショートカットキーを紹介しておきます。
Excelで Ctrl + Shift + 方向キー データがある範囲の末尾まで選択
Wordで Alt + Shift + -キー(伸ばし棒ですね) 数式を入力するところを出す
Wordで Ctrl + E,R,L 選択している行を中央揃え/右揃え/左揃えにする
ウィンドウを選択した状態で Windowsキー + 方向キー ウィンドウを画面の片側に寄せます 何かを見ながら作業をしたいときにべんり
僕もまだ大して使いこなせていませんが,知れば知るほど操作が減って楽になるとおもいます。
キー入力をカスタマイズしちゃおう
Backspaceキーとかってホームポジション(キーボードの手がおかれている位置)から遠くないですか???なのでキー入力を自分好みに改造できるソフトを導入しています。
なれるまでに結構な時間がかかるので実験レポートRTA直前に使い始めるのはおすすめしませんが,慣れればこれ以上ないまでに快適です。僕は「無変換キー + O」でBackspace,「無変換キー + J, I, ",", L」で方向キー←↑↓→を入力できるようにしています。ただし,先ほども言いましたが慣れるまでの間は逆に少し効率が下がってしまうので,注意が必要です。
実験レポートRTAのいいところ
実験レポートがエンターテインメントと化す
本来実験レポートは苦痛なものですが,RTAという競技性を持たせることでそれを中和することができます。他にも,LiveSplitというゲームのRTAなどの時間計測に使われるソフトを導入して士気を挙げたり,テーマをあらかた把握しておき,これからなにをするのかが一目でわかるサムネイルを制作して注目を浴びたりするなどして少しでも楽しくできるような工夫をしたりしていました。


面倒な実験レポートに多くの時間を割かずにすむ
かけている時間が実質1日以下なので,効率が良いです。
実験レポートRTAのわるいところ
身体・精神共に負担が大きい
12時間近くPCに向き合いっぱなしなので,体が大変なことになります。定期的に椅子から立ち上がって体をほぐすなどしてメンテナンスを怠らないようにしましょう。腰が死にます。
他にも,なにもわからないのに時間だけがすぎていったり,眠いのに眠れないという状況は結構メンタルにくるものがあります。この記事を読んでいる方の中には間に合わなければ留年に王手という極限状態がこわくてできないよという方もいるでしょう。初めのうちは,締め切り3日前から着手し始めるなどして少しづつ慣らしていき,その後開始時間を遅らせていくというのがよいでしょう。
他の人に頼ることが多い
周りのみんなより始めるのが遅いので,助けてもらう側に回りがちです。他の授業の課題でたくさん活躍したり,自分がわかっていることを積極的に教えたりしましょう。それもかなわない場合は,必ず感謝の言葉だけでも忘れないようにしましょう。いくら伝えても伝えすぎということはありません。いっぱい感謝しましょう。
ギリギリから始める癖がついてしまう
1度間に合うか間に合わないかの瀬戸際から初めて間に合ってしまうと,下手に成功体験として脳に焼き付いてしまい,報酬系(うれしいを感じる脳みその部分)が破壊されてしまいます。その結果何が起こるかというと,実験レポートに限らず多くの課題をギリギリから始めて,(不運にも)間に合ってしまい再び成功体験として脳に刻まれるという負のサイクルが形成されてしまいます。ろくでもないですね。
まとめ
やらないほうがいいです。
R03年度 2021年度 量子力学の解説
こんにちは。2021年度(R03年度)の量子力学の解説をやっていきます。
問題を持っていない方向けの閲覧およびダウンロードのリンクはこちら
最初に,この記事では理解しやすくしたり記憶のとっかかりをつくりやすく(忘れちゃってもその場で自分で導出できるように)するためにできるだけ詳細な説明を書きますが,説明がよくわかんない or 丸暗記でもいけるよ という方は,無理に理解しようとせずに流れをさくっと覚えてしまうことをオススメします。多分そっちの方が効率がよいと思います。
あと,めちゃくちゃいっぱい書いたので結局試験の時なに書けばええねんって感じになっちゃったんですけど,ここをうまくつないで書けば説明として抜けがなく点数がもらえそうだな,と思ったところは赤字にしているので,参考にしてみてください。
略解
1(1) (2)
(3)
2(1) (2)
(3) (4)
または
(5)
3(1) (2)
4(1) (2)
(3) (4)
5
大問1 小問集合
使う式を知っていれば他の大問とくらべて軽めの計算で解ける問題ばかりなので,しっかり得点しておきたいところです。
(1)ウィーンの変位則
プランクの熱放射式より導かれる黒体放射スペクトルのピーク波長に関する関係式にウィーンの変位則というものがあり,これは物体の放つ光のスペクトル,物体の温度
として以下の式で表されます。
問題用紙の上の方にも書いてあるやつですね。黒体放射を始めたとき,温度が同じならばどのような種類の物質でも同じ色で光るということをいっています。
接頭語に気をつけてを代入すると,
となり,について整理すると,
と分かります。
(2)光電効果
光子のエネルギー,仕事関数
,とびでてくる電子の運動エネルギーの最大値
とすると,以下の式が成り立ちます。
理由を知りたい人は,以下の記事がわかりやすくてよかったです。
また,光子のエネルギーは,波長,光速
,振動数
として,以下のように表せます。
よって,エネルギーは以下のように計算できます。
ここで,問題文で与えられている仕事関数の単位と光子のエネルギーの単位が異なるので,で統一することにしましょう。いま,
なので(問題文の上の方に書いてあります),
と単位を変換できます。よって,仕事関数の式に代入すると,
となり,これが答えです。
(3)ド・ブロイ波長
エネルギー,質量
,光速
として,特殊相対性理論より
が成り立ちます。よって,
であるので,運動量
,粒子の速度
とすると,
です。
これは振動数,光子のエネルギー
として成り立つ光子のエネルギーに関する式
より,
と変形することが出来ます。
こうしてできた式をについて整理すると,ド・ブロイの関係式
になります。
ここに,を代入すると,
となり,いま問題文より
,また運動しているのは自由電子であることから
が成り立つので,代入すると
となり,これが答えです。
大問2 一次元調和振動子
ばねにつながれた物体のような挙動をする調和振動子の問題です。毎年井戸型ポテンシャル or リング型 or 一次元調和振動子 のどれかに関するシュレディンガー方程式が必ずと言っていいほど出題されている気がします。
計算が煩雑で結構めんどくさいので,(1)だけ解答して他の大問に力を注いでもいいかもしれません。
(1)シュレディンガー方程式の立式
シュレディンガー方程式とはエネルギー演算子,波動関数
,エネルギー固有値
の間に成り立つ
という式のことです。この式は,エネルギー演算子を波動関数に左から作用させる,つまり波動関数に「ねえねえ,お前のエネルギー固有値っていくつなん?」と質問すると,「こんくらいだよ」と質問の答えであるエネルギー固有値に波動関数がかかったものが返ってくる,と考えると多少理解しやすいと思います。
エネルギー演算子は,
で表され,ポテンシャル
の方は状況によって異なります。今回の場合は復元力
がはたらいているので,座標
での復元力
に逆らって幅が
と微小である区間
の間を移動すると得られるポテンシャル
を
で足し集めると考えると,
という式が立てられ,計算すると
となります。ここらへんの説明はよくわかんなかったら一次元調和振動子のときは
だけ頭に入れとけばだいじょうぶです。
よって答えはとなりました。正直,いきなり答えを書いちゃっても点数が入ると思いますが,こわいので一応 一次元調和振動子の時のポテンシャルについて言及しておきましょう。
(2)(3)固有関数とエネルギー固有値の導出
とりあえず,基底状態の固有関数が与えられたので,シュレディンガー方程式に代入して計算をすすめてみましょう。
波動関数に基底状態の固有関数
を代入すると,エネルギー固有値
が基底状態のエネルギー固有値
になり,シュレディンガー方程式は以下のようになります。
左辺は
と展開でき,を合成関数の微分を用いて計算すると,
となります。
この計算結果をもとのシュレディンガー方程式にもどすと,
となります。で割ったり分母をはらったりして整理すると,
となり,大分すっきりしました。ここで,でくくれる項と定数項をわけ,左辺にあつめて右辺を
にしておきます。
このようにしてできた式の大元はシュレディンガー「方程式」であることから,この式はすべてのについて成り立つことが必要なので,どのような
についても右辺が
になるために,
でくくった項の係数と定数項の2つがそれぞれ
になることが必要です。この条件より2つの式
を得られて,これは2つの未知数を知るのに十分です。解くと,
となります。
(4)規格化
シュレディンガー方程式をよく観察してみると,ある
を定数倍したもの
もシュレディンガー方程式の解になりうることがわかり,このようにして作ることが出来る数学的に方程式を満足する解は無数に存在します。しかし,この無数の解の中で実際に現実世界のルールを物理的に満たす波動関数は限られていて,
は特定の値しかとりえません。この
を算出することを規格化と呼びます。
この「現実世界のルール」を数式に落とし込んだものである規格化条件というものが存在し,以下の式で表されます。
これは粒子が存在しうる範囲,つまりの間に粒子は必ず存在するという制約から,この範囲での座標
における粒子の存在確率である,
の関数としての波動関数
の絶対値二乗
をすべて足し集めると全事象の確率である1になるということを背景に立てられる式です。
この規格化条件を用いれば波動関数の係数部分であるを求めることができます。実際に規格化条件における
に
を代入し規格化してみると,
ここまで変形できれば,問題用紙の上の方にあるの式を適用することが出来ます。この式の
に
を代入すると(文字がかぶってて混乱しそうですが,
を
にまるまる置き換えるイメージです),
となり,規格化条件の式は以下のようになります。
について解くと,
となりますが,どちらの値も波動関数的には同じ意味を持ち,片方は必要ないので慣習にならって
の方を残せばよいです。答えは「
である」と書けば,
を規格化したことになります。定数
をに数値を代入した波動関数をかいたり,
に(2)の結果を代入したものをかいたりしてももちろんokです。その場合の答えは
です。
(5)位置及び位置二乗の期待値計算
一般に,ある物理量の期待値
は,ブラ・ケット表記で
の観測量を表す演算子
を用いて
と表されます。これを積分になおすと波動関数
の複素共役
を用いて,
と表せます。この小問では,
および
の期待値,つまり
および
を問われているので,具体的には
および
を求めればよいということになります。実際に
の方から求めてみましょう。
は
の複素共役ですが,今回は
が実数関数なので,
が成立します。また
は,
で定義され,
が成り立つので,そのまま代入してあげましょう。
ここで,被積分関数は,奇関数と偶関数
の積となっていて,被積分関数全体としては奇関数になっています。これに加え,積分範囲が
と
について対称になっているので,積分するまでもなく
であることがわかります。よって
であることがわかりました。
についても考えましょう。
が成り立つので,先ほどと同様の議論で
までは計算することが出来ます。あとは,問題用紙の上の方にある式の
に
を代入してあげれば,
が成り立つので,
とわかり,は(2)(4)より既知なので代入することによって値が求められます。答えは
となるはずです。
ここまでは量子論的なアプローチで期待値解釈をしましたが,古典的なアプローチでの期待値解釈も紹介しておきます。忘れちゃったり不安になったりしたときに思い出すきっかけになったら幸いです。結果は一致しますが,厳密にあってるかはわからないので,解答用紙にはそれとなく「期待値はこうこうこんなふうに表されるので~」みたいな感じで古典的アプローチについては明記しないほうが無難かなと思います。
そもそも,あることがらに関する期待値は,取りうるすべての事象について,の総和と等しいです。例えば,6面それぞれに
と書き込まれているサイコロを振った時の出る目の期待値
は,以下のように求められます。
これを踏まえて,座標の期待値を考えてみましょう。いま,座標
の付近の区間幅
の微小区間
を考え,「座標
に粒子が存在する事象」に着目します。ここの事象の値(知りたいことがらに対するこの場所での値,いまは座標です)は
になりますよね。そして,座標
に粒子がいる確率は(4)規格化でも触れましたが
で表されます。よって,座標
における
は,
になります。
この値を,座標として取りうるすべての事象,つまり
の範囲のすべての
について足し合わせれば
座標の期待値となります。よって求める期待値
は,
となり,これは先ほどの求めるべき式と一致しますね。
大問3 二原子分子の並進エネルギー
使う式を覚えていれば比較的簡単に解ける箇所なので,ぜひとも得点したいところです。
(1)一分子の運動エネルギー
いかなる種類の粒子にも,自由度1つ当たりのエネルギーが配分されるという法則があります。ここで,
はボルツマン定数,
は粒子の絶対温度です。この法則をエネルギー等分配則とよびます。
並進というのは,粒子の重心を目的二原子分子の並進の自由度は3なので,並進の自由度によって配分されるエネルギーはとなり,これが一分子の運動エネルギーの平均値に値します。この一分子の運動エネルギーの平均値を
とおくと,ボルツマン定数
であり,問題条件より
なので,
となり,が答えです。
(2)二乗平均速度
ある粒子の運動エネルギーは粒子の質量
,粒子の速度
として
と表せ,この中に
が含まれているので,(1)で求めた
をなんとかいじくって二乗平均速度
を出したいという気持ちになります。
「あれ,平均なのになんで問題文の根号の中の値はじゃなくて期待値
なの?」と思った人もいるかもしれませんが,実は,この場合は二乗速度の平均値と期待値はおなじものを指しています。というのも,「平均値 = すべての粒子の二乗速度の総和を粒子の数で割って均一にならしたもの = 多数粒子の中から無作為に粒子を一つとってきて二乗速度を測定する,という操作を十分な(データの偏りがなくなるくらいたくさんの)回数繰り返してその平均値をとったもの = 期待値」という風に言い換えることができるんですね。ということで,
は,
と同値です。またこの議論は(1)の運動エネルギーにも適用でき,
は,
と同値です。よって,
が成り立ちます。また,運動エネルギーの関係式より,
です。これをに代入すると,
が粒子によってばらつきがなく定数とみなせることから期待値の線形性(この場合は,
という風に,任意定数
について
が成り立つこと)より以下のように変形できます。
以上の議論をまとめると,以下の式が成り立ちます。
これをについて整理し,ルートを取ると,
となります。ここまでくれば,これに(1)の答えとを代入してあげれば,
となります。次元の変換でちょっとびっくりしてしまうかもしれませんが,仕事の式より
,また,運動方程式
より
であり,
の式に
を代入すると
,整理してルートを取って
という風に変換することが出来ます。
大問4 分子の励起
(1)換算質量
2原子以上で構成されている分子を考えるとき,換算質量という概念を用いると,1原子の粒子のように扱うことが出来て,便利になります。換算質量は,原子の質量
,もう一方の原子の質量
としたとき以下のように表されます。
和分の積と覚えるとよいでしょう。
今回は,どちらの粒子も原子なので,原子質量単位
(
の
の質量
の質量)を用いて
となります。代入すると,
あれがいくつなのか与えられてないじゃん,と思ったんですが水素原子は陽子(プロトン)と電子(エレクトロン)それぞれ一つずつで構成されているので,プロトンの質量
,エレクトロンの質量
としたとき,
が成り立ちます。よって,換算質量
は,
となります。有効数字は3桁なので,仮数部分(小数のところ)は四捨五入して1.17になると考えましたが,教授の解答では1.16になっていたので,切り捨て処理をしたと判断し,この記事もそれに準拠し答えをとします。
(2)合成慣性モーメント
分子の合成慣性モーメントは,換算質量
,結合距離
として以下のように表せます。
接頭語に気をつけて代入すると,
となります。
また,このような計算問題では前問で算出した数値は有効数字より1桁余分にとって計算(具体的には,ではなく,
として計算)するのが通例ですが,なぜか計算が合わない(仮数部分が1.415になりました)ので,ここでも教授の解答をベースに
には(1)の答えをそのまま代入したものと考え,さらに仮数部分1.403を切り捨てした
を答えとします。
(3)(4)励起状態にある分子の存在比率
ある励起状態にある分子の存在量の比率は,存在する確率の比率と等しいです。つまり,方位量子数の状態をとる確率を
とすると,
です。また,は,ボルツマン因子
に比例します。
また方位量子数の粒子は,磁気量子数
が
の範囲の
個の整数値を取ることが許され,これをスピン多重度とよびます。
はスピン多重度にも比例します。
これらに分配関数の逆数をかけると,
になります。
スピン多重度にがかかると確率になる理由のちゃんとした説明はこちらの記事がわかりやすかったです。
以上の議論をまとめると,以下のようになります。
問題文より,なので,
となるので,これが(3)の答えです。
(4)は,(3)より,なので,
,ボルツマン定数
と(2)の答えを代入し,注意深く計算できれば正解することが出来ます。計算すると,
は
となるので,誤差を丸めて答えはとなります。
大問5 ヘルマン-ファインマンの定理
やることが分かっていれば一本道ですが,文字がいっぱいでてくるので計算が大変です。また,小問がなく部分点が入る箇所がなさそうなのもこわいです。
ヘルマン-ファインマンの定理は以下の式で表されます。
この式は,「エネルギー演算子を好きな文字で微分したものの期待値は,エネルギー固有値をさっき決めた好きな文字
で微分したものに等しい」という意味です。式でみるより,言葉での説明をみたほうが理解しやすいと思います。
この問題においては,波動関数は問題文にある通り一電子固有状態についてのものなので,
と,
が成り立ちます。また,今知りたいのは,
であり,これは
と等しいです。よって,なんとかしてブラケットのまんなかの部分を
にしてやればよく,また期待値の線形性(
という風に,任意定数
について
が成り立つこと)より,定数倍はあとからかけたりわったりすることで調整がきくので,ブラケットのまんなかに
というかたちを残せればよいことがわかります。この形にできるように逆算していきましょう。
ハミルトニアン(エネルギー演算子)をよくみると,第2項の分母にがありますね。よって,微分された後は,ハミルトニアンの第1項は残っておらず,第2項に
が逆数として残っている形が理想です。これより,微分する文字
として
は不適切であり,
のいずれかが適していることがわかります。この中の文字ならどれで微分してもよいので,ハミルトニアンとエネルギー固有値を見てみて一番微分がしやすそうな
で微分することにしましょう。
いま,としてヘルマン-ファインマンの定理を適用すると,
となります。と
を計算すると,
となりました。ヘルマン-ファインマンの定理の式に代入すると,
となり,先ほどの期待値の線形性より
と変形できるので,
とすることができます。左辺を計算すると,
ボーア半径より,
となり,これは
であり,同時に
でもあるので,この問題の答えは
であるとわかりました。