1

OMC040-F 解いてみた

476
0

はじめに

こんにちは. kkkaaaです. 私は今日, 暇なので, OMC040のコンテスト中に思いついたF問題の解法を思考過程と共に紹介します. 暇ならもっと別のことをやるべきでは

OMCのサイトは こちら
OMC040-Fの問題ページは こちら

問題

Nを正整数とします. 数列 {an}n=1,2,
a1=a2=1,  an+2=an+1+Nan  (n=1,2,)
で定めるとき, an=pmなる合成数n, 素数p, 3以上の整数 m の組の個数をf(N)とします. このとき
f(1)+f(2)++f(31212)
を求めてください. ただし, いずれも小数第4位で四捨五入した値として, 以下が保証されます.
log530.683,  log730.565,  log1130.458,  log1330.428









解答

ここからは私がコンテスト中に思いついた解答となります.
まず, anについて実験します. Nを決めて考えるのは性質が見えづらいように思うので, anNの多項式として表します.


a1=1
a2=1
a3=N+1
a4=2N+1
a5=N2+3N+1
a6=3N2+4N+1=(3N+1)(N+1)
a7=N3+6N2+5N+1
a8=4N3+10N2+6N+1
a9=N4+10N3+15N2+7N+1

a6が因数分解できることに注目します. a6=pmとなる(N,p,m)を求めてみると, 3N+1N+1の最大公約数は1または2であるため, (N,p,m)=(1,2,3)となります. このように, 因数分解が可能な場合は最大公約数を利用して(N,p,m)を決定しやすいので, 因数分解ができるかどうかについても考えて実験します.


a8=4N3+10N2+6N+1=(2N+1)(2N2+4N+1)
a9=N4+10N3+15N2+7N+1=(N+1)(N3+9N2+6N+1)

この実験から, ijの倍数ならaiajの倍数になりそうです.
aitai+j, ai+1tai+j+1ならばai+2tai+j+2となるため, 合同式の法をajの約数pmとして考えると, 帰納的にijの倍数であることとaiajの倍数であることが同値であることが示されました.
よって, akpの倍数となるような最小の正整数kをとると, an=pmならばnの正の約数lkの倍数であるか, al=1です. anは広義単調増加なので, n1,2でない正の約数はkの倍数です. nが偶数かどうかで場合分けして考えると, qを素数, xを正整数としてn=2qxまたはn=qxとなることがわかります. いずれの場合もq=2ならばk=4, qが奇素数ならばk=qです.
ここから数列{aknak}について考えていきたいですが, この方針はあまり上手くできそうにないです. そのため, 数列{akn}を直接考察していきます.
annkの倍数でないときを無視したいですし, anの関係を探してみます.
ここで, より一般に, b0=a, b1=b, bn+2=bn+1+Nbnとして数列{bn}を考えます. 実験をするとこのようになります.


b0=a
b1=b
b2=Na+b
b3=Na+(N+1)b
b4=(N2+N)a+(2N+1)b
b5=(2N2+N)a+(N2+3N+1)b
b6=(N3+3N2+N)a+(3N2+4N+1)b

このような数列bnを設定した意図は, a=ai, b=ai+1とすると, bj=ai+jとなるからです.
bnは多項式fn,gnを用いてbn=fn(N)a+gn(N)bと表せます.
a0=0と自然に定義可能(漸化式を満たすように定義可能だということ)であることに留意して,
a=0, b=1を代入すると, an=bn=gn(N).
a=b=1を代入すると, an+1=bn=fn(N)+gn(N).
よって, fn(N)=an+1an, gn(N)=anであるため, bn=(an+1an)a+anbとなります.
よって, a=ai, b=ai+1とすると, ai+j=bj=(aj+1aj)ai+ajai+1となりました.
また, 以下の変形も便利そうな感じです.
ai+j+1=(aj+2aj+1)ai+aj+1ai+1=Naiaj+ai+1aj+1
これらを利用すると, ak, ak+1の値からank, ank+1の値を考察することができそうです. u=ak, v=ak+1とおいて, 2式それぞれにi=nk, j=kを代入してankについて実験してみます.
{a(n+1)k=(vu)ank+uank+1a(n+1)k+1=Nuank+vank+1


{ak=uak+1=v
{a2k=2uvu2a2k+1=v2+Nu2
{a3k=3uv23u2v+(N+1)u3a3k+1=v3+3Nu2vNu3

u,v,N3変数だと随分見づらいし, 計算ミスもしそうなのでこの辺で止めましょう. an=pmのときakanの約数だったので, up冪です. そこで, modu2で考えればNが消えて, 良さそうです. (ankuの倍数だから. )
帰納的に, anknuvn1(modu2), ank+1vn(modu2)となることが容易にわかります.
ここからは, nの素因数が大きく影響しそうなので, 場合分けをしてから考えます.

  • nが奇数のとき
    上の議論から, 奇素数qを用いてn=qxとなり, k=qです.
    nは合成数であるため, nq2の倍数であるため, aq2, uはいずれもp冪で, aq2>a2q>u2となるため, aq2u2の倍数です. よって, qvq1uの倍数であることが必要で, vpの倍数でないため, q=p, ap=pです. ap=pより, 簡単な不等式評価で, (N,p)=(2,3),(1,5)となるので, 後は個別撃破するだけです.
    (N,p)=(2,3)のときはa9=1713冪でないため矛盾.
    (N,p)=(1,5)のときはa25=750255冪でないため矛盾.
    (もしこれがp冪になったときはu=ap2, v=ap2+1などとして同様の議論をして決定させるつもりでした. )
  • nが偶数のとき
    上の議論から, 素数qを用いてn=2qxとなり, k=qまたはk=4です.
    n4のとき, n2kの倍数であるため, a2k, kはいずれもp冪で, a2k>u2となるため, a2ku2の倍数です. よって, 2vuの倍数であることが必要で, vpの倍数でないため, p=2, u=2です. よって, (N,q)=(1,3)で, このときa6=8, a9=34より, a92冪でないため(N,n,p,m)=(1,6,2,3)のみが適することがわかります.
    n=4のとき, a4=2N+1より, N=pm12となります.
    後は数えるだけです.
    p=3のとき3m12. 問題で与えられた値よりp=5のとき3m8, p=7のとき3m6, p=11,13のときm=3,4,5. p=17,19,23のときm=3,4, 29p79のときm=3.

よって, これら46通りが適するため, 求める値は46でした.

おわりに

ijの倍数であることとaiajの倍数であることが同値であることはai+j=(aj+1aj)ai+ajai+1から示せますが, この記事ではコンテスト中に私が考えた順番を優先しました.
OMC公式の解説 の方が強い結果で, (N,p)=(2,3),(1,5)みたいな変なケースも一気に消せています.

この議論におよそ70分もかけてしまったので, E問題までで2位に30分弱の差をつけていても抜かされるのは当然といえば当然でしょう.

投稿日:2021923
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

kkkaaa
25
9451

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 問題
  3. 解答
  4. おわりに