Wolfram 言語で大学入学共通テストを解く

日本では、大学入学希望者向けに、高等学校での基礎学習の到達レベルを判定するための大学入学共通テストが毎年行われています。

ここ最近は毎年、数学の問題を紙とペンで解くのを楽しみにしています。

Wolfram 言語バージョン 12 では、ユークリッドの合成幾何学の計算可能なバージョンを導入し始めました。私はこれが大好きで、4年前にはいくつかの幾何学の定理を証明する記事を投稿しています。

バージョン 14 では、幾何学的な数値を求めることが可能になりました。これにより、共通テストの幾何学の問題を Wolfram 言語で解くことができるようになったので、問題を解いてみます。

問題

2023年度 数学Ⅰのテストに出題された幾何学の問題は以下の通りです。

点 O を中心とし、半径が 5 である円 O がある。この円周上に 2点 A、B を AB=6 となるようにとる。また、円 O の円周上に、2点 A、B とは異なる点 C をとる。

(i) sin∠ACB はいくつか?また、点 C を ∠ACB が鈍角となるようにとるとき、cos∠ACB はいくつか?

(ii) 点 C を ∠ACB が鈍角で BC=5 となるようにとる。この時、AC の長さはいくつか?

(iii) 点 C を △ABC の面積が最大となるようにとる。点 C から直線 AB に垂直な直線を引き、直線 AB との交点をDとするとき、tan∠OAD はいくつか?また、△ABC の面積はいくつか?

(iv) 点 C を、(iii) と同様に、△ABC の面積が最大となるようにとる。このとき、tan∠ACB はいくつか?

さらに、点 C を通り直線 AC に垂直な直線を引き、直線 AB との交点を E とする。このとき、sin∠BCE はいくつか?

点 F を線分 CE 上にとるとき、BF の長さの最小値はいくつか?

解答

点 O を中心とし、半径が 5 である円 O がある。この円周上に 2点 A、B を AB=6 となるようにとる。また、円 O の円周上に、2点 A、B とは異なる点 C をとる。

(i) sin∠ACB はいくつか?また、点 C を ∠ACB が鈍角となるようにとるとき、cos∠ACB はいくつか?

図と正しい答えを得るためには、問題文のとおりにコードを書くだけです。

(ii) 点 C を ∠ACB が鈍角で BC=5 となるようにとる。この時、AC の長さはいくつか?

この問題も問題文の通りにコードを書けば解くことができます。

(iii) 点 C を △ABC の面積が最大となるようにとる。点 C から直線 AB に垂直な直線を引き、直線 AB との交点をDとするとき、tan∠OAD はいくつか?また、△ABC の面積はいくつか?

問題文にある「△ABC の面積が最大となるように」をそのままの表現でのコードの書き方がわからなかったので、黄色でハイライトしたコードを書きました。

(iv) 点 C を、(iii) と同様に、△ABC の面積が最大となるようにとる。このとき、tan∠ACB はいくつか?

さらに、点 C を通り直線 AC に垂直な直線を引き、直線 AB との交点を E とする。このとき、sin∠BCE はいくつか?

点 F を線分 CE 上にとるとき、BF の長さの最小値はいくつか?

問題文にある「BF の長さの最小値」をそのままの表現でのコードの書き方がわからなかったので、黄色でハイライトしたコードを書きました。

まとめ

バージョン 12 でのユークリッド合成幾何学の計算可能なバージョンの導入は、素晴らしい機能です。幾何学の問題を解くときに重要な図を描くことができます。バージョン 14 では一歩進んで、幾何学的な数値を求めることができます。

将来的には、解答のセクションで記載した問題文を黄色のハイライト部分のような人手による変換なしで、直接コード化できるようになることを期待しています。現時点の GeometricAssertion を使って直接コード化できる方法をご存じの方がいらっしゃいましたら、お知らせくださると幸いです。

また、Wolfram プラグインを使えば、問題の文章をそのまま ChatGPT に入力するだけで問題を解くことが可能になる日も近いと思います。ChatGPT に今回使った数学の問題を入力すると、現時点では以下のような出力になります。