2017年 東京大学 数学 理系 第4問(文系第4問)を解こう (4)

前回の続きです。
問題はこちら


p=2+\sqrt{5}とおき,自然数n=1,2,3,\cdotsに対して
\displaystyle a_n=p^n+\left(-\frac{1}{p}\right)^n
と定める。
以下の問いに答えよ。ただし設問(1)は結論のみをかけばよい。

(1)a_1,a_2の値を求めよ。

(2)n\geqq2とする。積a_1a_nを,a_{n+1}a_{n-1}を用いて表せ。

(3)a_n自然数であることを示せ。

(4)a_{n+1}a_nの最大公約数を求めよ。 (2017 東京大学 理科第4問 文科第4問 )

スポンサーリンク



思考過程

a_{n+1}a_nとの最大公約数を求めよとのこと。
(1)から(3)まででわかることは
a_{n+1}a_nがともに自然数であるということだけです。
a_{n+1}a_nが具体的な自然数としてわかったわけではありません。
具体的な数として与えられているのは
a_n=p^n+q^n (\displaystyle q=-\frac{1}{p}としています)・・・①
ということです。
(1),(2)でやったようにp+q,pqを利用してnの式で表されたa_{n+1}a_nを求めてから最大公約数を調べることもできそうですがどうにも面倒くさそうです。

とりあえずn=1のときのa_2a_1から何がわかるか調べてみましょう。

a_1=4=2^2
a_2=18=2*3^2
(最大公約数をを求めるときは素因数分解のカタチにしておくと楽です。素因数分解を利用した最大公約数の求め方は補講で)
ですからa_2a_1の最大公約数は2です。

これだけではデータが足りないのでa_3a_2の最大公約数も調べてみます。
a_3を求めるのは①より(2)の漸化式を利用したほうが簡単です。
漸化式より
a_3=4a_2+a_1\\
  \  \ \ \ =4*18+4\\
  \  \ \ \ =2^2*19
よって
a_3a_2の最大公約数は2です。

おや・・・a_2a_1の最大公約数と同じ2になりましたね。
ひょっとしたらnに依存せず最大公約数は2になるのではないでしょうか。

この予想を確かめるためa_4a_3の最大公約数を求めます。

以下、最大公約数を簡潔に表記するため記号を導入します。
2つの自然数a,b の最大公約数を
(a,b)
とすることとします。

a_4=4a_3+a_2\\
     \  \ \ \ =4^2\cdot19+18\\
     \  \ \ \ =2^4\cdot19+2\cdot3^2\\
     \  \ \ \ =2(2^3\cdot19+3^2)\\
     \  \ \ \ =2\cdot7\cdot23

よって
(a_4,a_3)=2
です。

どうやら予想は正しそうです。

ただa_4以降のa_nは数が大きくなって素因数分解が大変そうです。
素因数分解以外の方法で最大公約数を求められないでしょうか。

ここまでの調査より
(a_4,a_3)=(a_3,a_2)=(a_2,a_1)=2
と書けます。

この2数の最大公約数が連鎖していく形どこかで見覚えがありませんか。
そう、ユークリッドの互除法ですね。

A=QB+R(A,B,Qは非負整数、Rは0≦R≦B-1を満たす整数)
のとき
(A,B)=(B,R)
というアレです。

a_{n+1},a_nにこのような関係式があれば互除法が適用できそうだと考えて式を探すと
ありますね。漸化式が。

a_{n+1}=4a_n+a_{n-1}

a_{n+1}a_nで割った商が4、余りがa_{n-1}
みなすことができれば(☆)
互除法より
(a_{n+1},a_n)=(a_n,a_{n-1})・・・(a_3,a_2)=(a_2,a_1)=2
となってa_{n+1},a_nの最大公約数が2と求まります。

このみなし方は正しいのでしょうか。
互除法を見ると余りRの部分に制約がありますよね。
余りRは割る数Bよりも小さいという制約です。
漸化式において割る数はa_n,余りはa_{n-1}としたのでした。
ここですべての自然数nについてa_{n+1}>a_nが言えれば制約が満たされみなし方(☆)の正しさが保証されます。
(3)よりa_n自然数です。
a_{n+1}=4a_n+a_{n-1}>4a_n>a_n
ゆえにn≧2のとき,a_{n+1}>a_n
これとa_2>a_1より、すべての自然数についてa_{n+1}>a_nが言えました。
これで(☆)が正当化されました。
(4)が解けました。

解答の骨格

1.a_nが増加列であること示す
2.漸化式に互除法を適用する
3.漸化式を繰り返し用いる

解答例

(3)よりすべての自然数nについてa_n自然数
だから(2)の漸化式よりn≧2のとき
a_{n+1}=4a_n+a_{n-1}>a_n
(1)よりa_2>a_1
よってすべての自然数nについてa_{n+1}>a_n・・・①

2つの自然数a,bの最大公約数を(a,b)と表す
①より
a_{n+1}=4a_n+a_{n-1} ( n≧2 )
ユークリッドの互除法が適用できるから
(a_{n+1},a_n)=(a_n,a_{n-1})・・・②
②を繰り返し用いて
(a_{n+1},a_n)=(a_n,a_{n-1})\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \ =(a_{n-1},a_n-2)\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \ \vdots\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \ =(a_3,a_2)\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \ =(a_2,a_1)\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \ =2
よって求める最大公約数は2である・・・(答)

まとめポイント

・2数の最大公約数を求める場合、素因数分解による方法とユークリッドの互除法による方法が考えられます。本問の場合、漸化式が互除法が適用できる形で与えられているため互除法がよいでしょう。
a_{n+1}=4a_n^2+a_{n-1}のような形だったら互除法が適用できません)

・最大公約数の記号は
GCD
と書きます。(Greatest Common Divisor)の略です。
面倒くさい場合は単に()と表してよいでしょう。
いずれにせよ問題文で与えられていない記号を用いる場合には必ず答案上で記号を定義してください。
答案上で未定義の記号が現れると採点者には理解不能です。
採点者の忖度を期待してはいけません。
最悪の場合0点となります。

・互除法の適用に際して数列{a_n}が増加数列すなわち
a_1<a_2<・・・・・a_n<a_{n+1}
を示したほうが確実です。

というのも数列{a_n}の項の大小関係が不明だと
a_{n+1}=4a_n+a_{n-1}
においてa_n≦a_{n-1}と解釈する余地が出てきてしまうためです。
a_n≦a_{n-1}とすると
a_{n-1}=qa_n+r(q自然数r0≦r≦a_{n-1}を満たす整数)
とおけます
このとき
a_{n+1}=4a_n+a_{n-1}
 =(4+q)a_n+r
となりこれに互除法を適用することになって
(a_{n+1},a_n)=(a_n,r)
となってしまい(a_n,a_{n-1})が求まりません。
これでは漸化式を繰り返し用いるという操作ができません。
つまり
a_1<a_2<...<a_{k-1}≧a_k<...<a_n<a_{n+1}
となるKについて
(a_{n+1},a_n)=(a_n,a_{n-1})\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ =(a_{n-1},a_n-2)\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ \vdots\\  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ =(a_k+1,a_k)\\
  \  \ \ \   \  \ \ \   \  \ \ \   \  \ \ \ =(a_k,r)
となり(a_{n+1},a_n)を求める過程の連鎖が途中で途切れることになります。
(a_{n+1},a_n)から(a_2,a_1)まで降下していくからこそa_{n+1}a_nの最大公約数が2だと結論できることを確認してください。

「(1)から(3)まででa_nが増加数列となることは当たり前だ(だから書かなくてもよい)」
と感じる人がほとんどでしょうが、その当たり前のことを書くだけでこのような不条理が避けられるのですから書いたほうが安全です。

・思考過程で示したように求める最大公約数は2だと予想できます。
さらに漸化式が与えられていることから数学的帰納法を利用した解答が考えられます。
別解として示しておきます。

別解

a_{n+1}a_nの最大公約数が2であることを数学的帰納法で示す。

Ⅰ.a_1=4,a_2=18より
 a_1a_2の最大公約数は2である

Ⅱ.n=k (k≧2) のとき,a_ka_{k-1}の最大公約数を2と仮定すると・・・(☆)
a_k=2l,a_{k-1}=2m (l,mは互いに素) とおける
(2)の漸化式より
a_k+1=4a_k+a_{k-1}\\
  \  \ \ \   \  \ \ \ \ \ =2(4l+m)

4l+mlが互いに素でないとすると2以上の公約数gが存在して・・・(★)
4l+m=pg,l=qg (p,q自然数) と書ける
このとき,
4l+m=pg\\
  ⇔4qg+m=pg\\
  ⇔m=(p-4q)g
となり,gmの約数
l=qgよりglの約数でもある
ゆえにglm2以上の公約数となるがこれはlmは互いに素であることに反する。
よって4l+mlは互いに素
a_k+1=2(4l+m),a_k=2l
よりn=k+1のとき
a_k+1a_kの最大公約数は2である

Ⅰ.Ⅱ.よりすべての自然数nについて
a_{n+1}a_nの最大公約数は2である

(別解終わり)

注1.帰納法の仮定(☆)と背理法の仮定(★)を混同しないようにしてください。
矛盾によって否定されるのは(★)であって(☆)ではありません。

注2.最大公約数を2と仮定したときの
a_k=2l,a_{k_1}=2mにおけるl,mは互いに素です。
l,mを単に自然数としてはいけません。
単に自然数としたのではl,mが公約数をもつ可能性が生じるため仮定した値2が最大公約数と言い切れくなります。

一般に2つの自然数a,bについてその最大公約数をgとすると
a=kg,b=lgk,lは互いに素)
とおけます。

この置き方の使い方としては
2以上の最大公約数gを仮定してそれを否定することで2数が互いに素であることの証明に利用すことがほとんどです。
このときk,lが互いに素であることから矛盾を導きます。

別解の流れがまさに典型例です・
置き方だけでなく解答の流れを意識して理解してください。

最後に

(1)(2)(3)は簡単です。
定期テストレベルです。

(4)も漸化式からすぐに互除法の適用を思いついた人が多かったでしょう。
(思考過程にあるように私はすぐには思いつきませんでした。
 第一手に素因数分解を選択したことは本問の場合、悪手です。)
 

互除法の適用に際して{a_n}が増加数列であることを答案上で明示するかどうかでは判断が分かれるところです。

巷に出回ってる解答例の大部分が{a_n}が増加数列であることをを示さずに互除法を適用しています。
まとめポイントで示したように私は{a_n}が増加数列であることを明示すべきと考えますが世間はそうではないようです。

開示された成績が軒並み高得点であることから察すると東大はそこまで厳密な解答は要求していないように思えます。
ですから{a_n}が増加数列であることを明示せずに互除法を適用してもおそらく減点されていないでしょう。

それでも平素の学習では適用しようとしている定理の成立条件を確認することをオススメします。


補講 素因数分解を利用した最大公約数の求め方

素因数分解を利用して2数の最大公約数を求める方法を確認しておきます。
 中学(小学校?)で学んだことなので忘れている人が多いです。

公約数とは2つ以上の数の共通の約数です。
約数とは数自身を割り切る数です。
素因数分解した形において約数は
各素因数のべき乗の積として現れます。
このとき、各素因数についてべき乗が0を下限とし、素因数分解の指数を上限として自由にとれることに注意してください。

A=p_1^{a_1}p_2^{a_2}p_3^{a_3}
B=p_1^{b_1}p_2^{b_2}p_4^{b_4}
(p素数a,bは非負整数)とします。

Aの約数は
p_1^xp_2^yp_3^z (0≦x≦a_1,0≦y≦a_2,0≦z≦a_3)・・・①
となります。
(ここから約数の個数は(x,y,z)の組の個数と同じことがわかります。
つまりAの約数の個数は(a_1+1)(a_2+1)(a_3+1)個です。)


具体例で示せば
A=2^33^25のとき
2^23^05^1=20
はAの約数です。

同様にBの約数は
p_1^lp_2^mp_4^n (0≦l≦b_1,0≦m≦b_2,0≦n≦b_4)・・・②
となります。

公約数とはA,Bの共通の約数です。
①と②が同じ形になれば共通の約数といえます。

Ⅰ. Aの素因数p_3やBの素因数p_4のような一方の数にしか含まれない素因数は同じ形になりようがないのでそのべき乗の指数は0です。

Ⅱ. A,B共通の素因数p_1,p_2については素因数分解の指数の大小が関係します。
素因数p_1の指数a_1>b_1のときを考えてみます。
このとき、a_1≧c>b_1 となる非負整数cが存在します。
Aの約数
d=p_1^cp_2^yp^z
は公約数になれるでしょうか?

Bは
B=p_1^{b_1}p_2^{b_2}p_4^{b_4}
で素因数p_1b_1個持っています。
c>b_1
よりdでBを割るとp_1c-b_1個余ってしまいます。
当然ながらこの余ったp_1p_1以外の素因数を割ることはできません。
素数の定義を思い出してください)
よってdはBを割り切ることができないのでdは公約数となれません。
このことからAの約数①で公約数となれるのは
p_1^x (0≦x≦b_1)
の形をしたものでありAとBをp_1の指数で比べたとき大きくないほうの指数に上限が制約されることがわかります。
p_1以外の素因数についても話は同じです。

具体的に考えてみましょう.p_1=2,p_2=3として
A=2^3\cdot3,B=2^2\cdot3^5
のときA,Bの公約数は
2^x3^y (0≦x≦2,0≦y≦1)
の形をした1,2,3,4,6,12です。

Ⅰ・Ⅱを合わせて考えると
dがAとBの公約数となること(AとBの両方を割り切ること)の必要十分条件

「dがA,Bの各素因数の指数の大きくないほうを上限としたべき乗の積となること」・・・(☆)

です。

2つの自然数a,bのうち、大きくないほうを
min(a,b)
とします。
(大きくないほうとしているのは同じ場合を含むためです)

min(2,7)=2,min(3,3)=3

A=p_1^{a_1}p_2^{a_2}p_3^{a_3}
B=p_1^{b_1}p_2^{b_2}p_4^{b_4} (p素数a,bは非負整数)
の公約数をdとすると(☆)は式では

d=p_1^xp_2^yp_3^zp_4^w\\
(0≦x≦min(a_1,b_1),0≦y≦min(a_2,b_2),0≦z≦min(a_3,b_3),0≦w≦min(a_4,b_4))

となります。

例1
A=2^3\cdot3^2\cdot5^2\\
B=2^2\cdot3^5\cdot7

とするとAとBの公約数dは
d=2^x3^y5^z7^w (0≦x≦2,0≦y≦2,z=0,w=0)
となります。

ここからAとBの「最大」公約数がわかりますね。
(☆)において各素因数の指数を上限にとったときです。
例1でいえば
d=2^2\cdot3^2\cdot5^0\cdot7^0=36
がAとBの最大公約数です。

結局、2数の最大公約数は

「2数の各素因数の指数の大きくないほうをとったべき乗の積」

となります。

A=p_1^{a_1}p_2^{a_2}p_3^{a_3}\\
B=p_1^{b_1}p_2^{b_2}p_4^{b_4} 
(p素数a,bは非負整数)
の例では

GCD(A,B)=p_1^{min(a_1,b_1)}p_2^{min(a_2,b_2)}p_3^{min(a_3,0)}p_4^{min(0,b_4)}

です。


基本的事項なのでセンター試験でよく聞かれます。
2次試験でも論述の前提として必要になります。
忘れていた人はこの機会に確認しておいてください。