数学オリンピック本選2024 第2問

任意のmをとり,f(m)\lt pかつ\gcd(f(m),p)=1であるような素数pをとって,n=p-f(m)とおく.

このときm|\text{lcm}(m,f(m+f(n)))=\text{lcm}(f(m),f(m)+n)=\text{lcm}(f(m),p)|f(m)p.

よって任意のmに対してm|f(m)が得られる.

次にm=1,n=f(1)とすると,

f(1+f(1))=\text{lcm}(m,f(m+f(n)))=\text{lcm}(f(m),f(m)+n)=\text{lcm}(f(1),2f(1))=2f(1).

前の議論から,ある自然数aによりf(1+f(1))=a(1+f(1))とおけるが,a\geq 2と仮定すると,2+2f(1)\leq a(1+f(1))=2f(1)より矛盾.

したがってa=1であり,1+f(1)=f(1+f(1))=2f(1)からf(1)=1.

次にm=1とすると,

f(1+f(n))=\text{lcm}(m,f(m+f(n)))=\text{lcm}(f(m),f(m)+n)=\text{lcm}(1,1+n)=1+n.

前の議論から,f(n)=an,f(1+f(n))=b(1+f(n))とおくとb+abn=1+nが得られ,結局a=b=1が必要.特にf(n)=nが得られる.

逆にff(n)=nとすれば,両辺は\text{lcm}(m,m+n)と等しいことが分かるので条件を満たす.

したがって求める関数はf(n)=nのみである.

 

感想

あんまり見ないタイプの関数方程式だなあと思った.

数学オリンピック本選2024 第1問

以下a_0a_{n}を,a_{n+1}a_1を指すものとする.

\{a_i\}の中で絶対値が最大なものの1つをa_kと置く.

a_kが正の場合.

a_{k-1}\lt a_{k}だとすると

|a_{k-1}-2a_{k}|=2a_{k}-a_{k-1}=a_k+(a_{k}-a_{k-1})\gt a_k=|a_k|であり矛盾.

よってa_{k-1}= a_{k}.

これを繰り返すことで\{a_i\}は全て等しいことが分かる.

a_kが負の場合.

a_{k-1}\gt a_{k}だとすると

|a_{k-1}-2a_{k}|=a_{k-1}-2a_{k}=(a_{k-1}-a_k)-a_k\gt -a_k=|a_k|であり矛盾.

よってa_{k-1}= a_{k}.

これを繰り返すことで\{a_i\}は全て等しいことが分かる.

a_kが0の場合.

\{a_i\}は全て0なので全て等しい.

 

したがっていずれの場合も\{a_i\}は全て等しいことが分かった.

これをaとおくと条件からa-2a=aが必要であり,つまりa=0である.

ゆえに条件を満たすのは\{a_i\}が全て0の場合のみである.

 

感想

和が0になることぐらいはすぐに分かるしどうせ全部0の場合しかなさそうと思えるがその後の発想が少し難しい.思いつけば記述は簡単そう.

競プロerが応用情報を受けた所感

ちょっと書いて面倒で放置してたら公開がこんな時期に…

伝えたいこと

・競プロerで受ける人はnok0さんのブログを参考にしましょう。

tsuchi.hateblo.jp

・午前は4割ぐらいは応用情報の過去問から出ます。それに加えて基本情報の過去問とかからも多少出るので過去問道場で過去問を回しまくるだけでいいです。

・午後は競プロerなら緑レート以上あれば大して対策しなくても通りそうな気がしました。

 

以下蛇足

スペック

・数学系の修士1年

AtCoder

・学部の講義は文字通り片っ端から受けたので情報系の講義もそれなりにとっていた

受験まで

過去問を解いたら6割とれたので受けようかな~という気分になりました。

基礎理論が全部とれてるのは学部の講義で習った内容とある程度被っているというのもあったと思います。

 

試験1か月前ぐらいまで何もやっていなくて流石に何かやった方がいいかな~と思っていたら、TOEICで500点だか600点だかとらないと卒業できなくてヤバい!って言っている友人が一緒に集まって勉強しようと言ってきたので勉強することにしました。

 

参考書についてですが、受験料で7500円も払ってるのにさらに金を払うのも馬鹿らしかったのでなんかいい方法ないかな~と思ったんですが、Maruzen eBook Libraryの大学で契約している本の中に応用情報の参考書があったのでそれを無料で読みました。「徹底攻略 応用情報技術者教科書」ってやつです。

 

勉強方法としては、参考書を読み進めつつそれに対応する過去問を分野指定で解くのを繰り返しました。テクノロジ系は参考書を読んでいて多少は意味があったような気がしましたがマネジメント系とストラテジ系はあんまり意味がなかった気がします。参考書もそこの部分は適当に読み飛ばしました。

 

午後は前日まで対策しておらず、前日にnok0さんのブログとか同じ回を受ける友人の意見を参考にし、プログラミングと組込みシステム開発とシステム監査をとることにしてもう一つは会場で簡単そうなものを選ぶことにしました。

試験の感触

午前

思ったより過去問から丸々でているものが多いなと思いました。(実際かなりの割合が過去問の流用らしい。)

過去問を解いていた感じだと8割は確実にとれると思っていたのですが、今回のは難易度が高く解いていて7割ぐらいかな~となりました。

ドップラー効果の利用法みたいな問題もあってこんなの出るんだと思いました。

 

午後

情報セキュリティ…英語の略称を答える問題が2問ありしらね~~となり両方とも完全に勘になったし両方間違えた。

プログラミング…10分ぐらいで片づくと思ったが意外に手間取り30分ぐらいかかったがさすがに全完。

組込みシステム開発…問題文に書いてある仕様をちゃんと読めますかというだけで簡単だった。

システム監査…ただの国語でだいぶ簡単に思えたが、設問が嘘かと思うぐらい少なく1問間違えただけでだいぶ点が飛びそうで怖かった。

このあとどれを選択するか迷ったが計算問題が見え他の問題も大体解けそうだったシステムアーキテクチャを選択

システムアーキテクチャデータ形式を答える問題で唯一知っているCSVと答えたら間違えた。ほとんど読めば解ける問題だと思って選んだが最終問題が普通に知識がなく見当違いなことを書いて終了。

 

結果

午前:71.25点

午後:89.00点

でした。

午後は

情報セキュリティ 16/20
プログラミング 20/20
システムアーキテクチャ 14/20
組み込みシステム開発 19/20
システム監査 20/20

ぐらいの感触です。

 

感想

ノー勉でいけるやろwとか思ってたんですがこの難易度だと午前は勉強してなかったら落ちていた気がするので勉強しておいてよかったです。

午後は競プロをやってるならある程度問題文の読解もできるはずで、プログラミング・組み込みシステム開発・システム監査は高得点が取れるんじゃないかと思いました。もう1つは適当に選んでください。

解答例を出している会社が複数あり試験後に眺めていたんですが、システム監査の解答例が記号問題すらめちゃくちゃに割れていて面白かった。ただの国語の問題だと思ったけど思ったより難しいのかもしれない。

 

一緒に勉強していた友人はTOEICの点が全然足りなかったけど大学の救済用の試験を受けて無事単位が取れたらしいです。

 

 

 

 

ねしゃ~

この記事の項目名には以下のような表記揺れがあります。

ねしゃ~

ねしゃー

ねしゃ

ネシャア

ネシャー

nesya

Nesya

nesya-

Nesya-

nesya~

Nesya~

nesyã

Nesyã

Nesyarote

Nesyarlathotep

涅紗亞

 

📝この項目「ねしゃ~」は、内容をより充実させるため、加筆が求められています。

数学オリンピック本選2023 第4問

www.imojp.org

前提知識

p=2版のLTE補題として以下が成り立つ(証明はLTEの補題とその応用~一般化へ向けて~ | Mathlogの定理3とかを参考にするといいです)

nが偶数かつv_2(x)=v_2(y)=0のとき

v_2(x^n-y^n)=v_2(x^2-y^2)+v_2(n)-1

特にy=1なら

v_2(x^n-1)=v_2(x+1)+v_2(x-1)+v_2(n)-1\geq v_2(x-1)+v_2(n)

LTE補題を使わずに

n=b\cdot 2^a (a=v_2(n))とおいて

x^n-1=(x^{b\cdot 2^{a-1}}+1)(x^{b\cdot 2^{a-2}}+1)\cdots (x^{b}+1)(x-1)(x^{b-1}+x^{b-2}\cdots +1)

を用いて直接求めてもよい

 

解法

n=p_1^{e_1} \dots p_k^{e_k}(p_iは互いに異なる素数)とおくと

d(n)=(e_1+1)\dots (e_k+1)

\phi (n)=p_1^{e_1-1} \dots p_k^{e_k-1} (p_1-1)\dots (p_k-1)

よってe_i\gt 1となるようなiがあった場合\phi (n)p_iで割り切れるので\phi (n)^{d(n)}+1p_iで割り切れず1つ目の条件に矛盾

したがって整理すると

n=p_1 \dots p_k

d(n)=2^k

\phi (n)=(p_1-1)\dots (p_k-1)

と表せる

p_iに偶素数と奇素数がともに含まれていた場合\phi (n)^{d(n)}+1は奇数でnは偶数になるので矛盾

素数のみの場合はn=2しかありえずこれは条件を満たす

またn=1は条件を満たさない

以下p_iは全て奇素数k\geq 1とする

1つ目の条件は\phi(n)^{2^k}\equiv -1\pmod nと書け、中国剰余定理より任意のiにおいて、

\phi(n)^{2^k}\equiv -1\pmod {p_i}

ap_iの原始根としa^m \equiv \phi(n)\pmod {p_i}(m\lt p_i-1)だとするとa^{m\cdot 2^k}\equiv -1\pmod {p_i}だから

(p_i-1)/2\mid m\cdot 2^kかつp_i-1\nmid m\cdot 2^k*1

したがってv_2(p_i-1)=v_2(m\cdot 2^k)+1=v_2(m)+k+1\geq k+1\cdots (1)

2つ目の条件に着目する

\phi(n)が偶数かつnは奇数だからp=2版のLTE補題を使うと

v_2(n^{\phi(n)}-1)\geq v_2(n-1)+v_2(\phi(n))\cdots (2)

(1)より任意のiにおいてp_i\equiv 1\pmod{2^{k+1}}なので、n\equiv 1\pmod{2^{k+1}}となり

v_2(n-1)\geq k+1\cdots (3)

また\phi (n)=(p_1-1)\dots (p_k-1)及び(1)より

v_2(\phi(n))\geq k(k+1)\cdots (4)

よって(2),(3),(4)よりv_2(n^{\phi(n)}-1)\geq (k+1)^2

ここでv_2(d(n)^5)=v_2(2^{5k})=5kだから

2つ目の条件より(k+1)^2\lt 5k

したがってk=1,2

k=1の場合

(\phi(n)^{d(n)}+1)/n=( (p_1-1)^2+1)/p_1=p_1-2+2/p_1より整数とならないので矛盾

k=2の場合

v_2(p_i-1)\geq k+1=3が成り立つ

ここでv_2(p_1-1)=v_2(p_2-1)=3を仮定すると

n=p_1 p_2だからv_2(n-1)\geq 4より(2),(4)と併せて

v_2(n^{\phi(n)}-1)\geq 10=v_2(d(n)^5)より矛盾

一般性を失わずにv_2(p_1-1)\geq 4とする

v_2(\phi (n))=v_2( (p_1-1)(p_2-1))=v_2(p_1-1)+v_2(p_2-1)\geq 7だから(2),(3)と併せて

v_2(n^{\phi(n)}-1)\geq 10=v_2(d(n)^5)より矛盾

 

したがって条件を満たすのはn=2のみである

*1:(ℤ/p_iℤ)^×は位数p_i-1巡回群であり、a^{(p_i-1)/2}\equiv -1になることを利用している

数学オリンピック本選2023 第3問

www.imojp.org

ff(x)=(a_i\leq x+cとなるiの個数)として定義するとこれは広義単調増加である

数列のすべての項が等しいとするとa_{n+1}+c以下のa_iの個数は0または無数にあるから明らかに矛盾

あるkにおいてa_k\gt a_{k+1}だと仮定すると、f(a_{k+1})=a_k,f(a_{k+2})=a_{k+1}でありfの広義単調増加性からa_{k+1}\gt a_{k+2}となるので帰納的にa_k以降は狭義単調減少、よってa_{k+a_k}\leq 0より矛盾

したがって数列は広義単調増加

また同様にしてあるkにおいてa_k\lt a_{k+1}だと仮定すると、a_{k+1}\lt a_{k+2}が示せるから、a_i\lt a_{i+1}を満たす最も小さいi+1mとおくと、帰納的にm項目以降は狭義単調増加でありa_m以上の項は数列内で高々1個

したがってfx\geq a_m-cを満たすxにおいてf(x+1)-f(x)\leq 1

ゆえに任意のi\geq mにおいて、a_{i+1}-a_i=f(a_{i+2})-f(a_{i+1})\leq a_{i+2}-a_{i+1}

したがって帰納的に任意のj\gt i\geq mにおいて、a_{i+1}-a_i\lt a_{j+1}-a_j\cdots (*)

ここでa_{l+1}-a_l\geq 2を満たすl\geq mがあったと仮定しa_{l+1}-a_l=f(a_{l+2})-f(a_{l+1})=p\geq 2a_{l+2}-a_{l+1}=q\geq pとする

a_{l+1}+c,a_{l+2}+c\geq a_{l+1}だから(*)よりp=f(a_{l+2})-f(a_{l+1})\leq ( (a_{l+2}+c)-(a_{l+1}+c) ) /q=(a_{l+2}-a_{l+1})/q=q/q=1となり矛盾

したがってm項目以降は公差1の等差数列となる

広義単調増加性からm項目まではa_{m+1}以下であるので1m+c+1項目のみかつこれら全てがa_{m+1}+c以下となり、a_m=m+c+1

同様に条件を満たすようにとっていくと、a_{m-1}=m+c,a_{m-2}=m+c-1,\dots ,a_{1}=c+2と順に定まる

したがって考えられる数列は初項c+2公差1の等差数列のみであり、逆にこれが条件を満たすことは明らか

数学オリンピック本選2023 第1問

www.imojp.org

8枚のタイルを下の2つを重ねたように置けば24マスが達成できる

25マスが達成不可能なことを示す

左上のマスの座標を(x,y)=(0,0)としてx軸を下向きに、y軸を右向きにとると与えられたタイルを置くと座標の偶奇4通りを1つずつ含むから、

特にタイルは以下の黄色のマス(座標が(奇,奇))を必ず1つだけ含む

したがって置けるタイルの最大数は8つである

ここでタイルは以下の青色のマス(座標が(偶,偶))を必ず1つだけ含むことも同様に分かるので、

置けるタイルの最大数が8つであることと併せると少なくとも1つの青いマスは覆えない

したがって最大数は24である

 

あとがき

青マスと黄マスを1つずつ含むことは半分自明な気がするけど簡単めな問題だから上に書いたことぐらいは書いておいた方がいいかもしれないと思った(論述に自信がないなら置き方48通り全部書いて示せばいい(?))