平成27年1月11日

[流れ星]

     第315回数学的な応募解答

      <解答募集期間:12月14日〜111日>

[整数解・交代和の2題]

2014年も残り少なくなりました。今までのご応募に深く感謝申し上げます。来る2015年も引き続きご愛顧賜りますようよろしくお願いたします。。

問題1:nを正の整数とする。方程式 x+8y+8z=n を満たす正の整数 (x,y,z)の組が31375個存在するとき、nとして考えられる値の最大値を求めよ。

問題2:実数からなる空でない有限集合に対してその集合の「交代和」とは、要素を大きい順に並べて大きいほうから順番に足して、引いて、足して、引いて、・・・としてできたものとする。例えば,{1,2,3,7,9}の交代和は9−7+3−2+1=4、{5}の交代和は5です。それでは{1,2,3,・・・,n}の空でないすべての部分集合に対して交代和を計算したとき、それらの総和をnで表せ。ただし、nは正の整数で、必要あらば空集合{刀pの交代和は0とする。<出典:数学オリンピックへの道1 組合せ論の精選102問(朝倉書店)>

uchinyan         12/14 1357分 受信  更新 1/11

 問題1:nを正の整数とする。方程式 x+8y+8z=n を満たす正の整数 (x,y,z)の組が31375個存在するとき、nとして考えられる値の最大値を求めよ。

x + 8y + 8z = nnxyz は正の整数,実際には n 17 以上の整数,です。

u = y + z とおくと,u 2 以上の整数で,

x + 8u = n

これを満たす u 2 [(n-1)/8] の整数で,x はこれらの u のそれぞれに対して一意に決まります。

これらの u に対して yz は,y 1 u - 1 の整数で,z はこれらの y のそれぞれに対して一意に決まります。

そこで,k = [(n-1)/8] として,解の組の個数は全部で,

Σ[u=2,k]{u - 1} = Σ[u=1,k-1]{u} = k(k - 1)/2

これが 31375 になればいいので,

k(k - 1)/2 = 31375k(k - 1) = 62750 = 251 * 250k = 251

つまり,[(n-1)/8] = 251 になります。

これより,これを満たす n は,2009 2016 なので,最大の n 2016 になります。

 (確認) 2015 になるのかな,と思ったのですが,違うので,念のために,十進ベーシックで確認してみました。

<水の流れ:実はその通りでして、作問の中では2015を想定していました。8の倍数引く1でしたが・・・。ご指摘の通りでして恐れ入ります。>

FOR n = 2000 TO 2020

LET cnt = 0

FOR y = 1 TO n/8

FOR z = 1 TO n/8

LET x = n - 8 * y - 8 * z

IF x > 0 THEN

LET cnt = cnt + 1

END IF

NEXT z

NEXT y

PRINT n; cnt

NEXT n

END

2000  30876

 2001  31125

 2002  31125

 2003  31125

 2004  31125

 2005  31125

 2006  31125

 2007  31125

 2008  31125

 2009  31375

 2010  31375

 2011  31375

 2012  31375

 2013  31375

 2014  31375

 2015  31375

 2016  31375 <----- ここ

 2017  31626

 2018  31626

 2019  31626

 2020  31626

確かに,n 2016 のようです。

問題2:

まず,簡単な例で調べてみましょう。

{1} の場合

部分集合,φ,{1{,交代和,01,総和 1

{1,2} の場合

部分集合,φ,{1{{2}{1,2},交代和,0121,総和 4

{1,2,3} の場合

部分集合,φ,{1{{2}{1,2}{3}{1,3}{2,3}{1,2,3}

交代和,01213212,総和 12

{1,2,3,4} の場合

部分集合,

φ,{1{{2}{1,2}{3}{1,3}{2,3}{1,2,3}

{4}{1,4}{2,4}{1,2,4}{3,4}{1,3,4}{2,3,4}{1,2,3,4}

交代和,0121321243231232,総和 32

...

総和を見ると,1 = 2^04 = 2 * 2^112 = 3 * 2^232 = 4 * 2^3,となっています。

そこで,{1,2,3,...,n} では n * 2^(n-1) と予想されます。

これは次のように考えれば明らかでしょう。

{1,2,3,...,n} の交代和の総和を S(n) とします。

するとこれは,交代和に n を含まない場合と含む場合との和になります。

n を含まない場合の交代和の総和は,{1,2,3,...,n-1} の交代和の総和に等しく S(n-1) です。

n を含む場合の交代和の総和は,

その場合の部分集合が {1,2,3,...,n-1} の部分集合に n を追加したものなので,

交代和の中で n は常に足されその個数は {1,2,3,...,n-1} の部分集合の個数 2^(n-1) 個,

それ以外は {1,2,3,...,n-1} の部分集合の要素ですが交代和の中では符号が反転するので総和は - S(n-1)

結局,この場合は,n * 2^(n-1) - S(n-1),です。

そこで,

S(n) = S(n-1) + (n * 2^(n-1) - S(n-1)) = n * 2^(n-1)

になります。

 (感想)

問題1:で答えが 2015 かと思ったのですが,どうも違うようです。これでいいのでしょうか?何か勘違いしているのでしょうか?

問題2:は一見難しそうですが,実はあっさりと解けてしまうのですね。数学オリンピックだったら,国内の予選の中程度の難易度でしょうか。

「浜田明巳」         12/16 1632分 受信  更新 1/11

問題1:x+8y+8z=nより,
  8(y+z)=n−x
 1+8・2≦n≦8+8・2のとき,
  (x,y+z)(k,2)(k=1,2,3,………,8)となり,1通りずつ.
 1+8・3≦n≦8+8・3のとき,
  (x,y+z)(k,3)(k+8・1,2)(k=1,2,3,………,8)となり,(2+1)通りずつ.
 1+8・4≦n≦8+8・4のとき,
  (x,y+z)(k,4)(k+8・1,3)(k+8・2,2)(k=1,2,3,………,8)
となり,(3+2+1)通りずつ.
 ・・・
 1+8m≦n≦8+8mのとき,
  (x,y+z)(k,m)(k+8・1,m−1)(k+8・2,m−2),………,(k+8(m−2),2)(k=1,2,3,………,8)
となり,(m−1)+………+3+2+1=1/2・(m−1)m(通り)ずつ.
 1/2・(m−1)m=31375とすると,
  (m−1)m=31375・2=250・251
 関数(m−1)mはm≧1で単調増加なので,
  (m−1,m)(250,251)
  ∴m=251
 故にnの最大値は,
  8+8・252=2016………(答)

問題2:集合{1,2,3,………,n}の部分集合の交代和の総和をaとする.
 このとき,
  an+1=(集合{1,2,3,………,n,n+1}の部分集合の交代和の総和)
    =(集合{1,2,3,………,n}の部分集合の交代和の総和)
       +{(集合{1,2,3,………,n}の部分集合)∪{n+1}の部分集合の交代和の総和}
である.
 集合{1,2,3,………,n}の部分集合の1つを
  {b,b,b,………,b}(b<b<b<………<b,m≦n)
とすると,この集合の交代和は,
  b−bm−1+bm−2−………+(−1)m−1
 集合{b,b,b,………,b,n+1}の交代和は,
  (n+1)−b+bm−1−bm−2+………−(−1)m−1
   =(n+1){−bm−1+bm−2−………+(−1)m−1}
 また,集合{1,2,3,………,n}の部分集合は,2個ある.
 故に集合{1,2,3,………,n}の部分集合)∪{n+1}の部分集合の交代和の総和は,
  (n+1)・2−a
  ∴an+1=a{(n+1)・2−a}(n+1)
 a=1より,
  a=n・2n−1(n=1,2,3,………)

「浜田明巳」         12/18 1008分 受信  更新 1/11

Excelのマクロで解いた.
問題1:1≦n≦10000で計算した結果,
  n=2009,2010,2011,………,2016のとき,31375組
となる.
 したがって答は2016である.

Option Explicit 'x+8y+8z=n
Const n_max As Long = 10000
Dim a(n_max) As Integer
Sub Macro1()
     Cells(1, 1).Value = 0
     Dim x As Long, y As Long, z As Long
     Dim n As Long, k As Long
     For n = 1 + 8 + 8 To n_max
       Cells(2, 1).Value = n
       k = 0
       For z = 1 To Int((n - 1 - 8) / 8)
         For y = 1 To Int((n - 1 - 8 * z) / 8)
           x = n - 8 * y - 8 * z
           k = k - (x >= 1)
         Next y
       Next z
       Cells(3, 1).Value = k
       If k = 31375 Then
         Cells(1, 1).Value = Cells(1, 1).Value + 1
         Cells(Cells(1, 1).Value, 2).Value = n
         Range("B" & Cells(1, 1).Value).Select
       End If
     Next n
End Sub

問題2:1≦n≦20で計算した結果,
  すべて,n・2n−1
となる.

Option Explicit
Dim a(20) As Integer
Sub Macro2()
     Dim n As Long
     For n = 1 To 20
       Cells(n, 1).Value = n
       Cells(n, 2).Value = 0
       Call saiki(n, 1)
       Range("A" & n).Select
     Next n
End Sub
Sub saiki(ByVal n As Integer, ByVal m As Integer)
     Dim fugou As Integer, j As Integer
     a(m) = 0
     While a(m) <= 1
       If m < n Then
         Call saiki(n, m + 1)
       Else
         fugou = -1
         For j = n To 1 Step -1
           If a(j) Then
             fugou = -fugou
             Cells(n, 2).Value = Cells(n, 2).Value + fugou * j
           End If
         Next j
       End If
       a(m) = a(m) + 1
     Wend
End Sub

「スモークマン」           12/20 2248分 受信  更新 1/11

問題1:

8(y+z)=n-x=8m

m=2k のとき…

y+zは…

1-(2k-1)

2-(2k-2)

k-k

から…2k+1通りの解がある。

m=2k-1 のときは…2k通りの解しかないので、

2k+1=31375 の方で、

2k=31375-1=31374

8m=8*31374=250992

xは最小でも8なので…n=250992+8=251000

のはず…^^

 

  問題2

回答

n=2m のとき…

明らかに、連続するペアの差は1なので…交代和=m=n/2

n=2m-1 のとき…

偶数のときに倣い…

2m-2 においては…-(m-1)

一番大きい数が2m-1だから…

交代和=2m-1-(m-1)=m=(n+1)/2

 

でいいですね ^^

「スモークマン」           12/23 2031分 受信  更新 1/11

問題1:

 8(y+z)=n-x=8m

m個の間(m-1)カ所に区切りを入れる…

m-1=31375

m=31376

xは最小で8なので…

n=8m+8=8*(m+1)=8*31377=251016

 

のはずですね ^^;v

<水の流れ:どこかでミスがあり、答えに至っていませんが・・・>

問題2

{1,2,3,4,5} のとき...

先頭が5のとき、残り4個と{1,2,3,4}は打ち消し合う。

先頭が4のとき、残り3個と打ち消し合う。

先頭が3のとき、残り2個と打ち消し合う。

先頭が2のとき、残り1個と打ち消し合う。

これは、{1,2,3,5}とか、{2,4}でも同じ。

つまり、5*2^4

一般にも、

n*2^(n-1)

になりそうな…?

たとえば…

5-4+3-2+1  4-3+2-1  3-2+1  2-1  1

5-4+3-2    4-3+2    3-2    2

5-4+3-1    4-3+1    3-1

5-4+2-1    4-2+1        3

5-3+2-1    4-3

5-4+3     4-2

5-4+2     4-1

5-4+1     4

5-3+2

5-3+1

5-2+1

5-4

5-3

5-2

5-1

5

「早起きのおじさん」 12/24 1637分 受信  更新 1/11

問題1

方程式を次のように変形して考えます。

x8より小さい正の整数を初項として、公差8の等差数列の値をとります。

 

例えばn39としてみます。

正の整数の組の個数を数えます。

 

1つのxに対してyzは和が一定になります。

この場合は、1236組となります。

(組数の合計6は、自然数の1から3までの和です)

 

つまりn78×(31)39です。

78より小さい整数の最大です。

 

自然数の1からmまでの合計は、なので、

 として

m250(0)

よって、n78×(2501)2015です。

と思いましたが、xになりうる数の最小は8をこえなければよいので、8となります。

よって、n88×(2501)2016が解答になります。

 

<上の部分は12242218分に訂正を受信しました>

 

問題2

1,2,・・・,n}のすべての部分集合の交代和の総和をF(n)で表します。

1,2,・・・,n}の部分集合で要素の個数がkのものすべての交代和の合計をf(n,k)で表します。

つまり、F(n)f(n,1)f(n,2)f(n,3)+・・・・・・+f(n, n)です。

 

具体的にいくつか例をみてみます。

 

n1のとき:{1

F(1)f(1,1)1

 

n2のとき:{1,2

 要素が1個の部分集合は、{1}、{2}なので、f(2,1)123

 要素が2個の部分集合は、{1,2}なので、f(2,2)1

 F(2)f(2,1)f(2,2)314

 

n3のとき:{1,2,3

 要素が1個の部分集合は、{1}、{2}、{3}なので、f(3,1)1236

 要素が2個の部分集合は、{1,2}、{1,3}、{2,3}なので、f(3,2)1214

 要素が3個の部分集合は、{1,2,3}なので、f(3,3)2

 F(3)f(3,1)f(3,2)f(3,3)64212

 

f(n, k)の値を表にします。

この結果をみると、次の漸化式が予想されます。

式の解釈はあとにして、漸化式を解きます。

 

上の漸化式の両辺を で割ります。

ここで、とおくと、漸化式が、 となり、 は等差数列になります。

初項 、公差  なので、 

よって、

 

 

さて、漸化式の意味を考えます。

 

具体的にF(5)F(6)を調べてみます。

F(4)を考えるための部分集合

 

F(5)を考えるための部分集合

 f(5,1) {1}、{2}、{3}、{4}、{5

 

 f(5,2) {1,2}、{1,3}、{1,4}、{1,5}、

2,3}、{2,4}、{2,5}、

3,4}、{3,5}、

4,5

 

 f(5,3) {1,2,3}、{1,2,4}、{1,2,5}、{1,3,4}、{1,3,5}、{1,4,5}、

2,3,4}、{2,3,5}、{2,4,5}、

3,4,5

 

 f(5,4) {1,2,3,4}、{1,2,3,5}、{1,2,4,5}、{1,3,4,5}、{2,3,4,5

 

 f(5,5) {1,2,3,4,5

 

F(6)を考えるための部分集合

 f(6,1) {1}、{2}、{3}、{4}、{5}、{6}、

 

 f(6,2) 1,2}、{1,3}、{1,4}、{1,5}、{1,6

2,3}、{2,4}、{2,5}、{2,6}、

3,4}、{3,5}、{3,6}、

4,5}、{4,6}、

5,6

 

 f(6,3) 1,2,3}、{1,2,4}、{1,2,5}、{1,2,6}、

1,3,4}、{1,3,5}、{1,3,6}、

1,4,5}、{1,4,6}、

1,5,6}、

 

2,3,4}、{2,3,5}、{2,3,6}、{2,4,5}、{2,4,6}、{2,5,6}、

3,4,5}、{3,4,6}、{3,5,6

4,5,6

 

 f(6,4) 1,2,3,4}、{1,2,3,5}、{1,2,3,6}、{1,2,4,5}、{1,2,4,6}、{1,2,5,6}、

1,3,4,5}、{1,3,4,6}、{1,3,5,6}、

1,4,5,6}、

 

2,3,4,5}、{2,3,4,6}、{2,3,5,6}、{2,4,5,6}、

3,4,5,6

 

 f(6,5) {1,2,3,4,5}、{1,2,3,4,6}、{1,2,3,5,6}、{1,2,4,5,6}、{1,3,4,5,6}、{2,3,4,5,6

 

 f(6,5) {1,2,3,4,5,6

 

説明Akが偶数のとき

f(6,2)1を含まない部分集合は、f(5,2)の部分集合の各要素に1を加えたものです。

    f(6,2)1を含まない部分集合の交代和はの合計は、f(5,2)です。

 

説明Bkが奇数のとき

f(6,3)1を含まない部分集合は、f(5,3)の部分集合の各要素に1を加えたものです。

    交代和は、それぞれが1大きくなります。

   個数は、 です。

f(6,3)1を含まない部分集合の交代和の合計は、f(5,3)です。

 

説明Ckが奇数のとき

f(6,3)1を含む部分集合は、f(6,2)1を含まない部分集合1との和集合です。

f(6,3)1を含む部分集合の交代和の合計は説明Aより、f(5,2) になります。

 

説明Dkが偶数のとき

f(6,4)1を含む部分集合は、f(6,3)1を含まない部分集合1との和集合です。

f(6,4)1を含む部分集合の交代和の合計は説明Bより、f(5,3) になります。

 

 

このことをふまえて、F(n)F(n+1)について、f(n, k)f(n+1,k)を比較していきます。

 

k1のとき

 f(n,1)は、{1}、{2}、・・・、{n}の交代和の合計です。

 f(n+1,1)は、12}、{3}、・・・、{n+1の交代和の合計です。

 これを1青色の部分に分けて考えます。

 1}の交代和は、1()です。

青色の部分の交代和の合計は、f(n,1)の部分集合{1}、{2}、・・・、{n}のそれぞれが1増加したものです。

つまり、青色の部分の交代和の合計はf(n,1)11+・・・+1f(n,1)nf(n,1)

よって、f(n+1,1) f(n,1)

 

k2のとき

 f(n,2)は、

1,2}、{1,3}、・・・・・・・・・・、{1,n}、

2,3}、{2,4}、・・・、{2,n}、

・・・、

n1, n

の交代和の合計です。

 f(n+1,2)は、

1,2}、{1,3}、・・・・・・・・・・・・・・・・・、{1,n+1

2,3}、{2,4}、・・・・・・・・・、{2,n1}、

3,4}、{3,5}、・・・{3,n1}、

・・・、

n, n1

の交代和の合計です。

 これを1行目青色の部分に分けて考えます。

 1行目の交代和の合計は、f(n,1)と等しくなります。

青色の部分の交代和の合計は、

f(n,2)の部分集合のそれぞれに1を加えたものとして考えます。

数が2個なのでそれぞれの数が1増えても差は等しくなります。

つまり、青色の部分の交代和の合計はf(n,2)と等しくなります。

よって、f(n+1,2) f(n,1)f(n,2)

 

 

f(n, k)を考えるとき、部分集合は

1,・・・,k}、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・、{1,・・・,n}、

2,・・・,k1}、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・、{2,・・・,n}、

・・・、

nk1,・・・,n

 

f(n1,k)を考えるとき、部分集合は

1,・・・,k}、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・、{1,・・・,n1}、

2,・・・,k1}、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・、{2,・・・n1}、

3,・・・,k2}、・・・・・・・・・・・・・・・・・・・・・・・・・・・・・、{3,・・・n1}、

・・・、

nk2, ・・・,n1

 

f(n1,k)を考えるとき、部分集合を1を含む部分集合そうでないものに分けます。

1を含むものは、f(n1,k1)1を含まない部分集合と1との和集合になります。

1を含まないものは、f(n, k)の部分集合の各要素に1を加えたものです。

 

f(n1,k)について

kが偶数のとき

1を含む部分集合の交代和の合計は、f(n1,k1)1を含まない部分集合

2,・・・,k}、・・・・・・・・・・・・・・・・・・・・・・・・・・・、{nk3,・・・,n1

のそれぞれの交代和の合計と等しくなります。

 つまり、

 {1,・・・,k1}、・・・・・・・・・・・・・・・・・・・・・・・・・・・、{nk2,・・・,n

 の交代和の合計を考えればよいので、f(n, k1)と等しくなります。

1を含まない部分集合の交代和の合計は、f(n, k)となります。

 

 よって、f(n1,k)f(n, k1)f(n, k)

 

kが奇数のとき、

1を含む部分集合の交代和の合計は、f(n1,k1)1を含まない部分集合

2,・・・,k}、・・・・・・・・・・・・・・・・・・・・・・・・・・・、{nk3,・・・,n1

のそれぞれの交代和に1を加えたものの合計と等しくなります。

 つまり、f(n, k1)の部分集合

 {1,・・・,k1}、・・・・・・・・・・・・・・・・・・・・・・・・・・・、{nk2,・・・,n

のそれぞれの交代和に1を加えたものの合計と等しくなるので、f(n, k1)となります。

1を含まない部分集合の交代和の合計は、f(n, k)となります。

 

 よって、f(n1,k)f(n, k1)f(n, k)

 

最後に、f(n1,n1)を考えます。

n1が偶数なら、f(n1,n1)f(n, n)です。

n1が奇数なら、f(n1,n1)f(n, n)1f(n, n)です。

 

 

以上からF(n1)について整理すると、

n1が奇数なら、

F(n1)f(n1,1)f(n1,2)

f(n1,3)f(n1,4)

+・・・

f(n1,n1) f(n1,n)

f(n1,n1)

    ={ f(n,1)}+{f(n,1)f(n, 2)

+{f(n,2)f(n, 3)}+{f(n,3)f(n, 4)

+・・・

    +{f(n, n2) f(n, n1) }+{f(n, n1) f(n, n)

+{f(n, n)

    2×{f(n,1)f(n,2)+・・・+f(n, n1) f(n, n)}+{+・・・+

   

 

n1が偶数なら、

F(n1)f(n1,1)f(n1,2)

f(n1,3)f(n1,4)

+・・・

f(n1,n)f(n1,n1)

    ={ f(n,1)}+{f(n,1)f(n, 2)

+{f(n,2)f(n, 3)}+{f(n,3)f(n, 4)

+・・・

    +{f(n, n1) f(n, n) }+{f(n, n)

    2×{f(n,1)f(n,2)+・・・+f(n, n1) f(n, n)}+{+・・・+

   

となります。

<水の流れ:いつもながら分かりやすく丁寧できれいな解答です。助かります。>

「二度漬け白菜」     01/05 1926分 受信  更新 1/11 

以下では,実数 x に対して,axa+1 を満たす整数 a floor(x) と表し,
二項係数をcomb(a,b)というように表すことにします.
(
つまり,comb(a,b)=a!/(b!*(a-b)! です.)


問題1nとして考えられる値の最大値は2016()

 

x+8*y+8*z=n ---(1)
を満たす正整数(x,y,z)の組の個数を f(n) とする.
(1)
(x-1)+8*(y-1)+8*(z-1)=(n-17)
であるので,f(n)は,
a+8*b+8*c=(n-17) ---(2)
を満たす非負整数の組(abc)の個数に等しい.
さらに,(2)を満たすような非負整数の組(abc)の個数は,
8*b+8*c
(n-17)を満たすような非負整数の組(bc)の個数に等しい.
さらにこのような組(bc)の個数は,
b+c
floor((1/8)*(n-17))を満たすような非負整数の組(bc)の個数に等しい.
そしてさらにこのような組(bc)の個数は,
a+b+c=floor((1/8)*(n-17))
を満たすような非負整数の組(abc)の個数に等しい.
よって,
f(n)
=comb(floor((1/8)*(n-17))+2
2)
=(1/2)*(floor((1/8)*(n-17))+2)*(floor((1/8)*(n-17))+1)

 
f(n)=31375
となるようなnの値の範囲を求める.
f(n)=31375
より,(1/2)*(floor((1/8)*(n-17))+2)*(floor((1/8)*(n-17))+1)=31375
よって,floor((1/8)*(n-17))=249
よって,
249
(1/8)*(n-17)250
よって,2009n2017
以上よりnとして考えられる値の最大値は2016

 

 

問題2: 求める総和は,n*2^(n-1)() 

 

集合{123,…,n}の部分集合Sに対して,
S
の交代和を f(S) で表す.
集合{123,…,n-1}の任意の部分集合Aに対して,
集合 {n}A を対応させる.
このようなペア (A {n}A) を考えることにより,
{1
23,…,n}のすべての部分集合が2個ずつのペアになる.
f({n}
A)=n-f(A) に注意する.
求める総和は,
Σ[S{123,…,n}]f(S)
=
Σ[A{123,…,n-1}](f(A) + (n-f(A)))
=
Σ[A{123,…,n-1}](n)
=n*2^(n-1)


(
別解)
1
kn であるような k に対して,
12,…, n}の空でないすべての部分集合に対して交代和を計算したとき,
+k
および -k が何回現れるかを考える.
k
S{12,…,n}なるSに対し,Sの元を大きい順に並べたとき,
k
が奇数番目に来るときに,Sの交代和の計算において +k が現れる.
このようなSの個数は,
(comb(n-k
0)+comb(n-k2)+comb(n-k4)+comb(n-k6)+)*2^(k-1) 個.
また,Sの元を大きい順に並べたとき,kが偶数番目に
来るときに,Sの交代和の計算において -k が現れる.
このようなSの個数は,
(comb(n-k
1)+comb(n-k3)+comb(n-k5)+)*2^(k-1) 個.

以上ことを考えると,求める総和は,
Σ[k=1n](comb(n-k0)+comb(n-k2)+comb(n-k4)+comb(n-k6)+)*2^(k-1)*(+k)
+
Σ[k=1n](comb(n-k1)+comb(n-k3)+comb(n-k5)+)*2^(k-1)*(-k)
=
Σ[k=1n-1](comb(n-k0)+comb(n-k2)+comb(n-k4)+comb(n-k6)+)*2^(k-1)*(+k)
+
Σ[k=1n-1](comb(n-k1)+comb(n-k3)+comb(n-k5)+)*2^(k-1)*(-k)
+(2^(n-1))*n
=
Σ[k=1n-1](2^(k-1)*(k)*Σ[j=0n-k](-1)^j*comb(n-kj)) + (2^(n-1))*n
=
Σ[k=1n-1]2^(k-1)*(k)*(-1+1)^(n-k) + (2^(n-1))*n
=
Σ[k=1n-1]2^(k-1)*(k)*0^(n-k) + (2^(n-1))*n
=0+(2^(n-1))*n
=(2^(n-1))*n

 

「にいばりZ12      01/05 2226分 受信  更新 1/11

31,375を素因数分解すると53×251となります・・・@

 

  (x,y,z)(1,1,1),(2,1,1),・・・,(8,1,1)で各々nは17,18,19,20,21,22,23,24となります。

   たとえばn=18としたとき、(x,y,z)(2,1,1)に一意に定まりx+8+8z=18の不定方程式の解となります。

 

 (x,y,z)(9,1,1)n=25ですが、

  x+8+8z=25の不定方程式の解は

  (9,1,1,1,2,1,1,1,2)の3個となり不適です。

 

  まず、特殊(簡単)な場合から考えていきます

 次の不定方程式の場合です(x,y,nは正の整数;x1,y≧1n2

  x+y=n

 解が1個の場合 (x,y,n)=(1,12

解が2個の場合(x,y,n)=(1,23)(x,y,n)=(2,13

解が3個の場合(x,y,n)=(1,34)(x,y,n)=(2,24)(x,y,n)=(3,14

解が4個の場合(x,y,n)=(1,45)(x,y,n)=(2,35)(x,y,n)=(3,25)(x,y,n)=(4,15

以上のように解の個数は(x,yを変数と見た対称式なので)x,yの最大値に一致します。またこの時のnは解の個数+1(x(y)の最大値+y(x)の最小値)

解の個数はn-1

 

次に

 x+2y=n の場合を考えます。

 解が1個の場合(x,y,n)=(1,13)(x,y,n)=(2,14

解が2個の場合(x,y,n)=(1,25)(x,y,n)=(3,15)(x,y,n)=(2,26)(x,y,n)=(4,16

解が3個の場合(x,y,n)=(1,37)(x,y,n)=(3,27)(x,y,n)=(5,17)(x,y,n)=(2,38)(x,y,n)=(4,28)(x,y,n)=(6,18

解が4個の場合(x,y,n)=(1,49)(x,y,n)=(3,39)(x,y,n)=(5,29)(x,y,n)=(7,19)(x,y,n)=(2,410)(x,y,n)=(4,310)(x,y,n)=(6,210)(x,y,n)=(8,110

 

次に

 x+ x+2y=n の場合を考えます。

 解が1個の場合(x,y,n)=(1,13)(x,y,n)=(2,14

解が2個の場合(x,y,n)=(1,25)(x,y,n)=(3,15)(x,y,n)=(2,26)(x,y,n)=(4,16

解が3個の場合(x,y,n)=(1,37)(x,y,n)=(3,27)(x,y,n)=(5,17)(x,y,n)=(2,38)(x,y,n)=(4,28)(x,y,n)=(6,18

解が4個の場合(x,y,n)=(1,49)(x,y,n)=(3,39)(x,y,n)=(5,29)(x,y,n)=(7,19)(x,y,n)=(2,410)(x,y,n)=(4,310)(x,y,n)=(6,210)(x,y,n)=(8,110

 

次にx+8y=n の場合を考えます。

 解が1個の場合(x,y,n)=(1,19)(x,y,n)=(2,110)(x,y,n)=(3,111)(x,y,n)=(4,112)(x,y,n)=(5,113)(x,y,n)=(6,114)(x,y,n)=(7,115)(x,y,n)=(8,1168y=n

の場合を考えます。

 

 解が1個の場合(x,y,n)=(1,19)(x,y,n)=(2,110)(x,y,n)=(3,111)(x,y,n)=(4,112)(x,y,n)=(5,113)(x,y,n)=(6,114)(x,y,n)=(7,115)(x,y,n)=(8,116

解が2個の場合(x,y,n)=(1,217)(x,y,n)=(9,117)(x,y,n)=(2,218)(x,y,n)=(10,118)(x,y,n)=(3,219)(x,y,n)=(11,119)(x,y,n)=(4,220)(x,y,n)=(12,120)(x,y,n)=(5,221)(x,y,n)=(13,121)(x,y,n)=(6,222)(x,y,n)=(14,122)(x,y,n)=(7,223)(x,y,n)=(15,123)(x,y,n)=(8,224)(x,y,n)=(16,124

解が3個の場合(x,y,n)=(1,325)(x,y,n)=(9,225)(x,y,n)=(17,125)(x,y,n)=(2,326)(x,y,n)=(10,226)(x,y,n)=(18,126)(x,y,n)=(3,327)(x,y,n)=(11,227)(x,y,n)=(19,127)(x,y,n)=(4,328)(x,y,n)=(12,228)(x,y,n)=(20,128)(x,y,n)=(5,329)(x,y,n)=(13,229)(x,y,n)=(21,129)(x,y,n)=(6,330)(x,y,n)=(14,230)(x,y,n)=(22,130)(x,y,n)=(7,331)(x,y,n)=(15,23x,y,n)=(23,131)(x,y,n)=(8,332)(x,y,n)=(16,232)(x,y,n)=(24,132

解が4個の場合(x,y,n)=(1433)(x,y,n)=(9333)(x,y,n)=(17233)(x,y,n)=(25133)(x,y,n)=(2434)(x,y,n)=(10334x,y,n)=(18234)(x,y,n)=(26134)(x,y,n)=(3435)(x,y,n)=(11335)(x,y,n)=(19235)(x,y,n)=(27135)(x,y,n)=(4436)(x,y,n)=(12336)(x,y,n)=(20236)(x,y,n)=(28136)(x,y,n)=(5437)(x,y,n)=(13337)(x,y,n)=(21237)(x,y,n)=(29137)(x,y,n)=(6438)(x,y,n)=(14338)(x,y,n)=(22238)(x,y,n)=(30138)(x,y,n)=(7439)(x,y,n)=(15339)(x,y,n)=(23239)(x,y,n)=(31139)(x,y,n)=(8440)(x,y,n)=(16340)(x,y,n)=(24240)(x,y,n)=(32140

 

ここまでの結果を俯瞰すると、次の法則に気づきます。

nによりyの取りうる値がの個数が一意に決まる。

即ち、n-8>0(∵x1)から8yがn-1を超えることができない

よって、yの個数(最大値ymax)は

nが8で割り切れる場合

(/8 -1)となり最小値は1となります。

nが8で割り切れない場合

(/8の整数部)となり最小値は1となります

 

nとyが決まるとxはyの値により各々一意に定まりその最大値は

nが8で割り切れる場合

max=n-min×8=n-1×8=n-8 

またその最小値は

min= n-max×8=n-(n/8-1)×8= 8

nが8で割り切れない場合

max=n-min×8=n-1×8=n-8 

またその最小値は

min= n-max×8=n-(n/8の整数部)×8

一般には、当然x=-8(nが定まるとyの値によって飛び飛び)となります。

 

いよいよ、問題1に取り組むわけですが

前述の

x+8y=n

x+y=n+z=w

の結果を利用します

 

問題1の式

x+8y+8z=nを変形すると

x+8(+)n

+z=wと置くと

x+8w=n

となり、x+8y=nで行った議論がほぼ同様にできます。

(ただし変数の定義域がw≧2に注意が必要です)

 x+8w=n

の場合を考えます。

 

 解が1個の場合(xwn)=(1217)(xwn)=(2218)(xwn)=(3219)(xwn)=(4220)(xwn)=(5221)(xwn)=(6222xwn)=(7223)(xwn)=(8224

解が2個の場合(xwn)=(1325)(xwn)=(9225)(xwn)=(2326)(xwn)=(10226)(xwn)=(3327)(xwn)=(11227xwn)=(4328)(xwn)=(12228)(xwn)=(5329)(xwn)=(13229)(xwn)=(6330)(xwn)=(14230)(xwn)=(7331)(xwn)=(15231)(xwn)=(8332)(xwn)=(16232

解が3個の場合(xwn)=(1433)(xwn)=(9333)(xwn)=(17233)(xwn)=(2434)(xwn)=(10334)(xwn)=(1823xwn)=(3435)(xwn)=(11335)(xwn)=(19235)(xwn)=(4436)(xwn)=(12336)(xwn)=(20236)(xwn)=(5437)(xwn)=(13337)(xwn)=(21237)(xwn)=(6438)(xwn)=(14338)(xwn)=(22238)(xwn)=(7439)(xwn)=(15339)(xwn)=(23239)(xwn)=(8440)(xwn)=(16340)(xwn)=(24240

解が4個の場合(xwn)=(1541)(xwn)=(9441)(xwn)=(17341)(xwn)=(25241)(xwn)=(2542)(xwn)=(1044xwn)=(18342)(xwn)=(26242)(xwn)=(3543)(xwn)=(11443)(xwn)=(19343)(xwn)=(27243)(xwn)=(4544)(xwn)=(12444)(xwn)=(20344)(xwn)=(28244)(xwn)=(5545)(xwn)=(13445)(xwn)=(21345)(xwn)=(29245)(xwn)=(6546)(xwn)=(14446)(xwn)=(22346)(xwn)=(30246)(xwn)=(7547)(xwn)=(15447)(xwn)=(23347)(xwn)=(31247)(xwn)=(8548)(xwn)=(16448)(xwn)=(24348)(xwn)=(32248

 

これらから、不定方程式 x+8w=nx1w≧2 n17

の解の個数をkとするとw2からk+1までのk通りの値を取ることがわかります。

wがk+1(つまり解の個数に対する最大値)を取ったときxは最小値となり8

よってその時のnの最大値は

 8(k+1+8=8k+16

ここでx+y=n+z=w

の結果を利用します

w=y+zと置いていることから

y,zの組み合わせは

2-1+3-1+・・・・+(k+1-1)=k(k+1)/2

即ち不定方程式

+8(y+z)=n

の解の個数(P)P =k(k+1)/2の場合

nの最大値は

nmax=8(k+1+8=8k+16

k=(-1+(1+8P))/2から

nmax=4(-1+(1+8P))+16=4(1+8P)+12

よって

P=53×251の時の

nmax=4(1+8P)+12=2016・・・・・回答

 

計算が、煩雑になるので先にkを求めてみますと冒頭の素因数分解から

k(k+1)/253×251

k(k+1)2×53×251=250×251

k=250

nmax=8k+16=2016

この計算だと、手計算でもなんとかなります。

 

なんとか新年の2015を導きたかったのですが至りませんでした。

おそらくどこかで計算間違いをしていると思います。

<水の流れ:実はその通りでして、作問の中では2015を想定して・・・。ご指摘の通りでして恐れ入ります。>

問題2:

先ず部分集合の意味を考えてみます

「全ての集合は部分集合として空集合を含む」

ここで問題では空集合を{刀pと表現していますがφまたは{}と考えます。

空集合は集合の元として存在するのではなく、集合そのものだからです。

自然数nまでの部分集合には空集合も含まれますが、この場合0と定義されているので計算上無視できます。

次に部分集合の元の数が問題になりますが、題意はすべてと言っているので、1,2,3,・・・,nを全て求めなければなりません

そこでまず、元が1個の場合を考えます

交代和の定義から元が1個の場合すべて正となるので

その総和は

n(n+1)/2です

次に元が2個の場合(このとき空集合を集合の元として考えると1個の場合と同じものが出てきてしまいます)

 

相異なる(n以下の)自然数を2個選んだ時

部分集合の個数はnC2=n!/(2!(n-2))=n(n-1)/2、元の個数はn(n-1)個です

この時

nに注目すると

nを含む集合はn-1回出現します({n,n-1}{n,n-2}{n,n-3}{n,n-4}{n,n-5}{n,n-6}・・・・・{n,1})

nは最大数なので交代和における符号はすべて正

n-1に注目すると

n-1を含む集合はn-1回出現します({n,n-1}{n-1,n-2}{n-1,n-3}{n-1,n-4}{n-1,n-5}{n-1,n-6}・・・・・{n-1,1})

n-1は最大数-1なので交代和における符号は負が1個、正がn-2

同様にして

n-iは最大数-iなので交代和における符号は負がi個、正がn-i-1

これら注目した各元毎の総和は

n (n-1) +(n-1) (n-2)+(n-2) (n-3)+(n-3) (n-4) +(n-4) (n-5) +・・+(n-i) (n-i-1) +・・・+(n-(n-2))(n-(n-2)-1)+(n-(n-1))(n-(n-1)-1)-((n-1)+2(n-2)+・・・・i(n-i)+・・・+(n-1))

これを展開整理すると・・・・・・・・と、ここまで考えもっとシンプルな回答があるのではと思いました。

 

ある集合を考えます。

たとえば元が3個の

5,3,1

この交代和は5-3+1ですが

これには元の数がそれより少ない

対応する部分集合

2個と1個の部分集合が必ず存在し

それらを合計すると

5-3+1  ・・・元が3個の集合の交代和

5-3   ・・・元が2個の集合の交代和

5  -1  ・・・元が2個の集合の交代和

+3-1  ・・・元が2個の集合の交代和

5+3+1  ・・・元が1個の集合の交代和の総和

これらを合計すると最大値以外は全てキャンセルアウトします

 

したがって回答は

20(元の最大値×最大値を含む部分集合の個数)

となりますがこれでは数学的な回答とはとても言えないので以下で述べます(交代和の定義は題意に沿います)

 

自然数1,2,3,4,5,・・・nの集合をPとします

その部分集合の個数はN=nC1+ nC2+・・・・+ nCn

N=(i=1~n) nC=(i=0~n) nC-1・・・(i=0~n) は狽フ上下にi=0nを付けたものです。記号がうまく書けないものでご容赦ください

よってN2項係数の総和-1である事が解ります(2項係数の総和=(1+1)n )

N=2n-1

全ての部分集合の中にある元が出現する回数は

元の個数が1個の場合その数以外で構成される組み合わせが除外されるのでC1-1C1=1

元の個数が2個の場合その数以外で構成される組み合わせが除外されるのでC2-1C2

元の個数が3個の場合同様にその数以外で構成される組み合わせが除外されるのでC3-1C3

これを1~nまで足し合わせると

(i=1~n) nC(i=1~n) n-1C

となり2項係数の総和の計算に基づくと

2n-1-2n-1-1)=2n-1

となります。数の大きさにかかわらず同数回出現することは直感的にもは予想できます。

 

次に各元の正負について考えます。

nは常に正です(∵交代和の定義から正から始まるため)

全ての部分集合の中にnとn-1が同時に現れる個数はn-1現れた時にnが現れない個数と等しい。

これは、組み合わせの対称性(即ちnとn-1を交換しても組み合わせの個数が変わらない)を考慮すると、組み合わせの元の個数上にnとn-1の差異はないことから自明です。これはn-in-i-1との間にも言えます。

すべての部分集合の内n-1を含み且つnを含む集合ではn-1の符号は−、n-1を含みnを含まない集合ではn-1の符号は+。その個数が等しいことから元n-1の総和は0以下、n-2・・・も同様で自然数1,2,3,4,5,・・・nの部分集合の交代和の総和は

2n-1n・・・・回答

 

  補足

 数学的帰納法による証明

 自然数1,2,3,4,5,・・・n-1の部分集合の交代和の総和が

2n-2n-1

であることが真であると仮定すると

自然数1,2,3,4,5,・・・nの部分集合の交代和の総和が

 2n-1n

であることとn-1=1で成立していることを証明する

自然数1,2,3,4,5,・・・nの部分集合の交代和の総和は

(nを含まない部分集合の交代和の総和=2n-2n-1))+nを含む部分集合の交代和の総和)

nを含む部分集合の交代和の個数はnが規定値として定まっているので

 元が1個の場合-1C0=1個・・・元はn

 元が2個の場合-1C1

元が3個の場合-1C2

元が4個の場合-1C3

・・・・

元がn-1個の場合-1Cn-2

元がn個の場合-1Cn-1=1

これらの個数を足し合わせると

(i=0~n-1) n-1C=2 n-1

これらの交代和には規定値として最大数に正整数nが含まれるため

自然数1,2,3,4,5,・・・nの部分集合の交代和の総和は

自然数1,2,3,4,5,・・・n-1の部分集合の交代和の総和の符号を反転したものと2 n-1nの和に等しい

よって

2 n-1n-2n-2n-1+2n-2n-1=2 n-1n

-11の時

2n-2n-1)=1

・・・・・・・・・・・証明終わり

SPCK      01/10 15時27分 受信  更新 1/11

C++で解いた。
a = x-1, b = y-1, c = z-1
とする。(a, b, c0以上の整数)
(1+a) + 8(1+b) + 8(1+c) = n
a + 8b + 8c = n-17
となる。
このプログラムではn-17の値(_n変数)0から一つずつ増やしていってa, b, c
組み合わせを求め31375通りを越えたらその一つ前のn-17の値に+17を足して31375通りのx, y, zの組合せを持つ
最大のnを求めている。

a, b, c
の組み合わせを求める際、次のように考えている。
b, c
が共に0である場合を考えるとa = n-17となる一通りが存在する。
このaから8を引いてn-17の値を保つにはb+cの値を1増やさなければならない。
だから、aが不敵な値になる直前まで8を引き続けると、b+cの値は1ずつ増えていくので、
a, b, c
の組み合わせも2P1, 3P1, 4P1...となる。
b, c
が共に0である場合の一通りも合わせて考えると
a
が不適な値になる直前まで8を引き続けた時に一つのaの値に存在するa, b, cの組み合わせは
8
を引けた回数をmとすると
1, 2, 3......m, m+1
と表せる。
m
は最初のaの値、つまりn-178で割った商であるため、等差数列の和の公式より
(1+(_n/8+1))*(_n/8+1)/2
で求められる。

#include
cstdio
#include
cstdlib
#include
cmath
int main(void)
{
int _n = 0, C = 0;
while(C <= 31375){
_n++;
C = (1+(_n/8+1))*(_n/8+1)/2;
}
printf("%d\n", _n-1 + 17);
system("pause");
return 0;
}

<水の流れ:どこかで考え方のミスをしていますね>

「浜田明巳」      01/12  1714分 受信  更新 2/9

前回の問題の「SPCK」の解答で

C = (1+(_n/8+1))*(_n/8+1)/2;

を考えミスとしていたと思います。

しかし、C++において、プログラム中、Cを整数宣言しているので、この式を計算した際、小数点以下は切り捨てされます。したがって、これで正解だと思います。

 

C++で解いた。
a = x-1, b = y-1, c = z-1
とする。(a, b, c0以上の整数)
(1+a) + 8(1+b) + 8(1+c) = n
a + 8b + 8c = n-17
となる。
このプログラムではn-17の値(_n変数)0から一つずつ増やしていってa, b, c
組み合わせを求め31375通りを越えたらその一つ前のn-17の値に+17を足して31375通りのx, y, zの組合せを持つ
最大のnを求めている。

a, b, c
の組み合わせを求める際、次のように考えている。
b, c
が共に0である場合を考えるとa = n-17となる一通りが存在する。
このaから8を引いてn-17の値を保つにはb+cの値を1増やさなければならない。
だから、aが不敵な値になる直前まで8を引き続けると、b+cの値は1ずつ増えていくので、
a, b, c
の組み合わせも2P1, 3P1, 4P1...となる。
b, c
が共に0である場合の一通りも合わせて考えると
a
が不適な値になる直前まで8を引き続けた時に一つのaの値に存在するa, b, cの組み合わせは
8
を引けた回数をmとすると
1, 2, 3......m, m+1
と表せる。
m
は最初のaの値、つまりn-178で割った商であるため、等差数列の和の公式より
(1+(_n/8+1))*(_n/8+1)/2
で求められる。

#include
cstdio
#include
cstdlib
#include
cmath
int main(void)
{
int _n = 0, C = 0;
while(C <= 31375){
_n++;
C = (1+(_n/8+1))*(_n/8+1)/2;
}
printf("%d\n", _n-1 + 17);
system("pause");
return 0;
}

<水の流れ:修正できて助かりました。どうもありがとうございます。29日記>

皆さん、問題や質問に答えてください。一部でも構いませんから、解答とペンネームを添えて、メールで送ってください。待っています。