3

加算と2倍のレパートリーのなす数の総数

84
0

はじめに

はじめまして、シェーマと申します。
いつかMathlogに記事を書きたいなと思っていたら、面白そうな問題を見つけたので、記事を書く練習がてら考えてみようと思いました。
先日 ぱぺさん の投稿した 【問題提起】加算と2倍のレパートリー という記事において、下記の問題が提示されています。

整数1に対して、以下の2つの操作を計n回 (操作Aのみをn回、操作Bのみをn回も可)だけ行ったとき、その計算結果としてあり得る整数の個数をnで表せ。

【操作】

  • 操作A「1を加える」
  • 操作B「2倍する」

n回の操作でできる整数からなる集合をSn、その要素数をanとおくと、定義から
S1={2},Sn+1={x+1,2x|xSn}
が成り立ちます。
この問題はanの一般項を求めよ、ということですね。

Snの例

S1={2}
S2={3,4}
S3={4,5,6,8}
S4={5,6,7,8,9,10,12,16}

執筆時点で元の記事にはコメントにて nissyさん が先に一般項を求めておられましたが、別のアプローチを紹介したいと思います。

自然数の結合と重み付き和

唐突ですが、次の概念を考えます。

自然数の結合

自然数からなる組(x1,x2,,xk)i=1kxi=nを満たすとき、この組(x1,x2,,xk)自然数nの結合という。また、自然数nの結合のなす集合をXnとおく。

この「結合」という名称が正式なものかはわかりませんが、「composition」の直訳です。

重み付き和

重み付き和p:XnN
p:(x1,x2,,xk)i=1k2i1xi
で定め、その像をXnとおく。

いくつか具体例を見てみましょう。

XnXnの例

X1={(1)},X1={1}
X2={(2),(1,1)},X2={2,3}
X3={(3),(2,1),(1,2),(1,1,1)},X3={3,4,5,7}
X4={(4),(3,1),(2,2),(1,3),(2,1,1),(1,2,1),(1,1,2),(1,1,1,1)},
X4={4,5,6,7,8,9,11,15}

SnXnの関係

さて、SnXnの例を見比べた方の中にはお気づきの方もいらっしゃるでしょうが、SnXnの間には次のような関係が存在します。

SnXnの間には次のような全単射が存在する。
XnSn,xx+1

この事実を証明する前に、次の補題を用意します。

Xnの帰納的定義

Xnは次のように帰納的に構成される。
X1={1},Xn+1={x+1,2x+1|xXn}

Xn+1の元は、Xnの元(x1,x2,xk)から次の2通りで構成されます。

  1. (x1+1,x2,,xk)
  2. (1,x1,x2,,xk)

この構成法によりXn+1の元は全てつくされます。
この操作をXn,Xn+1で考えると、(1)はx+1、(2)は2x+1に対応しています。これにより、補題が示されます。

では定理1を証明していきましょう。

定理1

数学的帰納法で証明します。
n=1のとき、X1={1},S1={2}より明らかです。
nのときに成り立つと仮定し、n+1のときを考えます。
補題1より、Xn+1の元yXnの元xを用いてx+1または2x+1と表されます。
帰納法の仮定より、x+1Snの元です。これにより、x+22x+2Sn+1の元です。
x+2=(x+1)+1, 2x+2=(2x+1)+1
であるため、Xn+1Sn+1, yy+1は全単射を与えることがわかります。
以上より、任意のnについて主張が示されました。

定理1

Xnの要素数はanに等しい。

これにより、anを考察する際にXnXnを用いることができるようになります。

anの計算

では実際にanを求めていきます。
そのために次の漸化式を証明しましょう。

anの漸化式

a1=1,a2=2,an=an1+an2+n2 (n3)

n=1,2のときは明らかです。
n3のときを考えます。そのためにXnを次の3つに分解します:
(x1,,xk)Xnの元としたとき、
(1) x11である元全体の集合。これは(1,x),xXn1と表されるため、Xn1の元と1対1対応があります。
(2) x12である元全体の集合。これは(2,x),xXn2と表されるため、Xn2の元と1対1対応があります。
(3) x13である元全体の集合Yn
これによりXnの元はXn1,Xn2,Ynの3つの集合の元から構成されることがわかります。

Xnの分解法から、Xnの元においてXn1由来の元はXn1Xn, x2x+1Xn2由来の元はXn2Xn, x2x+2で与えられます。
前者は奇数、後者は偶数であるため、これらの像に重複する数字は存在しません。
つまりXnの元のうち、Xn1からくる元はan1個、Xn2からくる元はan2個存在することがわかりました。
後はYnからくる元のうち、重複しない元がn2個であることを示せば終了です。

さてYnをさらに次の2つに分解します:
(y1,,yk)Ynの元としたとき、
[1] k=1,2の元全体からなる集合Yn1
[2] k3の元全体からなる集合Yn2

前者はYn1={(n),(3,n3),,(n1,1)}であり、全部でn2個の元からなります(ただし、n=3のときは(3)(3,0)を同一視します)。
この集合からくるXnの元は、Xn1,Xn2由来の元と重複しません。
なぜならYn1の重み付き和による像Yn1Yn1={n,n+1,,2n3}であり、最大の数は2n3です。
一方Xn2の最小の数はn2であるため、Xn2由来の元の最小値は2n2です。
これによりXnの元のうち、Yn1由来の元がn2個存在することがわかりました。

最後にYn2由来の元は、全てXn1,Xn2由来の元と重複することを示します。
それは次の等式から示されます:
(x1,,xk)Xn, x13に対し、
x1+2x2+4x3=(x12)+2(x2+3)+4(x31)
x1+2x2+i=3k22i1xi+2k2xk1+2k1xk=(x12)+2(x2+1)+i=3k22i1xi+2k2(xk1+2)+2k1(xk1)
が成り立つため、(x1,x2,x3)(x12,x2+3,x31)(x1,x2,,xk1,xk)(x12,x2+1,,xk1+2,xk1)の重み付き和はそれぞれ等しくなります。
つまりk3,x13であるとき、この操作を繰り返すことによって重み付き和の値が等しいx1=1またはx1=2であるXnを見つけることができます。
このことはYn2由来の元は全てXn1,Xn2由来の元と重複することを意味します。

以上より、Xnの元はXn1,Xn2,Yn1からくる元で全てつくされるため、an=an1+an2+n2 (n3)が示されました。

最後にこの漸化式を解いていきましょう。

まず階差数列bn=an+1anを考えると、
b1=1,b2=2,bn=bn1+bn2+1 (n3)
が成り立ちます。
最後の式は
bn+1=(bn1+1)+(bn2+1)
と変形できます。これはフィボナッチ数列の漸化式と同じものです。
さらにb1+1=2=Fibonacci(3),b2+1=3=Fibonacci(4)であることから、
bn=Fibonacci(n+2)1
となります。
よって、
an=i=1n1(Fibonacci(i+2)1)+a1=Fibonacci(n+3)1Fibonacci(1)Fibonacci(2)(n1)+1=Fibonacci(n+3)(n+1)
が導かれます(途中でi=1mFibonacci(i)=Fibonacci(m+2)1の公式を使いました)。
これはa1=Fibonacci(4)(1+1)=1よりn=1のときも成り立っています。

anの一般項

an=Fibonacci(n+3)(n+1)=15{(1+52)n+3(152)n+3}(n+1)

終わりに

はじめての記事でしたが、いかがでしたでしょうか。anの数え方にはフィボナッチ数列が関係していなさそうなのに、一般項にはフィボナッチ数列が出てくるところが面白いですね。
最後におまけとして、唐突に出てきた自然数の結合やその重み付き和はどこから考えたのかを簡単に書いておきたいと思います。こちらは読みたい方だけどうぞ。それでは。

おまけ

クリックして詳細をチェック

まずこの問題を考えるにあたって、いくつか計算してみようと思いました。
ただ、nが大きくなると計算するA,Bの組み合わせが多くなるため、面倒だなと。
そこでAB=BAAの関係式を使い、Bを全て左に持っていってBkAlの形に持っていけば計算が多少楽になるのでは、と考えたわけです(ここではA,Bを自然数への右作用とみなしています)。
ではどうやってA,Bの組み合わせをBkAlの形に持っていくのか。
その初めの一歩として
ABAAB(2,5)
BBABA(1,2,4)
というように、左から数えて何番目にBがあるのか、という対応を考えます。
この対応で得られる組を(c1,c2,,ck)とおいたとき、これはどのような演算に対応するのでしょうか。
AB=BAAの関係式から、BAの順番を入れ替えるとAの数が2倍になることがわかります。
つまりBを左に入れ替えていくと、そのBよりも左にあるAの数が2倍になって右に行くことになります。
(c1,c2,,ck)において、c1番目のBより左にはc11個のAがあり、それは入れ替えをすることで右に2(c11)個のAが並びます。
c1番目のBc2番目のBの間にはc2c11個のAがもともとあるため、全部で2(c11)+(c2c11)個のAが並んでいるわけです。
これらのAc2番目のBを入れ替えていくことで4(c11)+2(c2c11)個のAになります。
以上の操作を繰り返すことで、A,Bn回作用させるとき、(c1,c2,,ck)と同じ操作を与える作用は
BkAl,l=i=1k+12ki+1(cici11), (c0=0,ck+1=n+1)
となります。
これにより、2にA,Bn1回作用させるとき、その作用が(c1,c2,,ck)に対応しているとすると、
2k+1+i=1k+12ki+1(cici11)=2k+1+i=1k+12ki+1(cici1)(2k+11)=i=1k+12ki+1(cici1)+1
が得られることがわかります。
最後のシグマ記号の中身を見てみると、
cici11, i=1k+1(cici1)=ck+1c0=n
であることから、
(c1,c2,,ck)(c1,c2c1,,ckck1,nck)
という対応で自然数nの結合が得られます。
そして作用の計算結果は重み付き和となっています。
これらの概念はこうやって思いついたということですね。
以上、おまけでした。

投稿日:21日前
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

昔大学で数学をしていた人

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. はじめに
  2. 自然数の結合と重み付き和
  3. $S_n$$X_n$の関係
  4. $a_n$の計算
  5. 終わりに
  6. おまけ