平成24年9月23日

[流れ星]

     第280回数学的な応募問題解答

      <解答募集期間:92日〜923日>

[4桁の電話番号]

 

(1)0000から9999までの10000通りの電話番号のうち、0,1が少なくとも1回ともに現れる番号は全部でいくつあるか。

(2)0から9999までの整数のうちで、0,1が少なくとも1回ともに現れる整数はいくつあるか。

NO1uchinyan  09/02 1543分受信 更新9/23

どうせなので n 桁で解いてしまいましょう。

(1)  (解法1)

n 桁のうち,01 のある桁の数を k 桁,0 のある桁の数を m 桁とすると,

01 が少なくとも 1 回ともに現れるのだから,k >= 2m >= 1k-m >= 1 で,

01 が現れる桁を選ぶのに nCk 通り,その k 桁内での 01 の配置に kCm 通り,

01 以外の n-k 桁は 2 9 なので 8^(n-k) 通り,となって,nCk * kCm * 8^(n-k) 個,

これを k = 2 nm = 1 k-1 で足せばいいから,

Σ[k=2,n]{Σ[m=1,k-1]{nCk * kCm * 8^(n-k)}}

= Σ[k=2,n]{nCk * Σ[m=1,k-1]{kCm} * 8^(n-k)}

= Σ[k=2,n]{nCk * (Σ[m=0,k]{kCm} - kC0 - kCk) * 8^(n-k)}

= Σ[k=2,n]{nCk * ((1 + 1)^k - 1 - 1) * 8^(n-k)}

= Σ[k=2,n]{nCk * (2^k - 2) * 8^(n-k)}

= Σ[k=2,n]{nCk * 2^k * 8^(n-k)} - 2 * Σ[k=2,n]{nCk * 8^(n-k)}

= (Σ[k=0,n]{nCk * 2^k * 8^(n-k)} - nC0 * 2^0 * 8^(n-0) - nC1 * 2^1 * 8^(n-1))

- 2 * (Σ[k=0,n]{nCk * 1^k * 8^(n-k)} - nC0 * 1^0 * 8^(n-0) - nC1 * 1^1 * 8^(n-1))

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

= 10^n - 2 * 9^n + 8^n

この問題では,n = 4 なので,

10^4 - 2 * 9^4 + 8^4 = 10000 - 13122 + 4096 = 974

になります。

 

(解法2)

n 桁のうち 01 が少なくとも 1 回ともに現れるのだから,

まず,全体の 10^n 個から,01 が両方ともに 1 回も現れない 8^n 個を引きます。

しかしこの中には,まだ,片方しか現れない場合が残っているので,これも引きます。

これは,

1 9 を使い 1 が少なくとも 1 回現れる場合 9^n - 8^n 個,と

02 9 を使い 0 が少なくとも 1 回現れる場合 9^n - 8^n 個,です。

そこで,結局,

10^n - 8^n - (9^n - 8^n) - (9^n - 8^n) = 10^n - 2 * 9^n + 8^n

この問題では,n = 4 なので,

10^4 - 2 * 9^4 + 8^4 = 10000 - 13122 + 4096 = 974

になります。

 

(解法3)

n 桁のうち 01 が少なくとも 1 回ともに現れるのだから,

まず,全体の 10^n 個から,

0 が全く現れない場合 9^n 個と 1 が全く現れない場合 9^n 個を引きます。

ところが今度は,これでは,

01 が両方とも全く現れない場合 8^n 個を2回引いてしまっているので1回分を足します。

そこで,結局,

10^n - 9^n - 9^n + 8^n = 10^n - 2 * 9^n + 8^n

この問題では,n = 4 なので,

10^4 - 2 * 9^4 + 8^4 = 10000 - 13122 + 4096 = 974

になります。

 

(2)  (解法1)

(1)より,整数が n-1 桁以下の場合で n 桁に足らない上位桁部分に 0 を補った場合の数は,

10^n - 2 * 9^n + 8^n 個,になります。

そこで,整数がちょうど n 桁の場合は,

n 桁目が 1 の場合

残りの n-1 桁に 0 が少なくとも 1 回現れればいいので 10^(n-1) - 9^(n-1)

n 桁目が 2 9 の場合

残りの n-1 桁に(1)が使えて,8 * (10^(n-1) - 2 * 9^(n-1) + 8^(n-1))

で,合計,9 * 10^(n-1) - 17 * 9^(n-1) + 8^n 個,です。

そこで,整数が n 桁以下の場合には,k = 1 n として k 桁の整数の場合を足せばいいので,

Σ[k=1,n]{9 * 10^(k-1) - 17 * 9^(k-1) + 8^k}

= 9 * (10^n - 1)/(10 - 1) - 17 * (9^n - 1)/(9 - 1) + 8 * (8^n - 1)/(8 - 1)

= (10^n - 1) - 17(9^n - 1)/8 + 8(8^n - 1)/7

この問題では,n = 4 なので,

(10^4 - 1) - 17(9^4 - 1)/8 + 8(8^4 - 1)/7 = 9999 - 13940 + 4680 = 739

になります。

 

(解法2)

(1)より,整数が n-1 桁以下の場合で n 桁に足らない上位桁部分に 0 を補った場合の数は,

10^n - 2 * 9^n + 8^n 個,になります。

そこで,上位 k 桁に 0 が並び n-k 桁以下で 0 が現れず 1 が少なくとも 1 回現れる場合,

9^(n-k) - 8^(n-k) 個,を k = 1 n で足し上げたものを(1)の結果から引けばいいので,

(10^n - 2 * 9^n + 8^n) - Σ[k=1,n]{9^(n-k) - 8^(n-k)}

= (10^n - 2 * 9^n + 8^n) - (9^n - 1)/(9 - 1) + (8^n - 1)/(8 - 1)

= 10^n - (17 * 9^n - 1)/8 + (8 * 8^n - 1)/7

= 10^n - 17(9^n - 1)/8 - 2 + 8(8^n - 1)/7 + 1

= (10^n - 1) - 17(9^n - 1)/8 + 8(8^n - 1)/7

この問題では,n = 4 なので,

(10^4 - 1) - 17(9^4 - 1)/8 + 8(8^4 - 1)/7 = 9999 - 13940 + 4680 = 739

になります。

 

(感想)

「0,1が少なくとも1回ともに現れる」という条件が,最初,ピンと来なくて迷いましたが,

要するに,01 が両方とも同時に 1 回以上現れる,つまり,00021234 などはなし,

と解釈しましたが,それでよかったでしょうか。

場合の数は,いろいろと考えられるので割と好きな分野なのですが,

問題文の解釈に迷うことも多く,その意味では,少し苦手です。

まぁ,数学というよりも国語の問題なんですが,常識がない,ともいえるかなぁ (^^;

NO2「浜田明巳」  09/03 1732分受信 更新9/23

(1)i). 0,1が合計4個のとき,
 ア). 0が3個,1が1個,または0が1個,1が3個のとき,
   aaab,aaba,abaa,baaa({a,b}={0,1})
  の4種類なので,
   4×2=8(個)
 イ). 0が2個,1が2個のとき,
   aabb,abab,abba({a,b}={0,1})
  の3種類なので,
   3×2=6(個)
ii).
0,1が合計3個のとき,0が2個,1が1個,または0が1個,1が2個なので,
   aabc,aacb,abac,acab,abca,acba,baac,caab,baca,caba,bcaa,cbaa
   ({a,b}={0,1};c=2,3,4,………,9)
 の12種類なので,
   12××8=192(個)
iii).
0,1が合計2個のとき,0が1個,1が1個なので,
   abcd,acbd,acdb,cabd,cadb,cdab
   ({a,b}={0,1};c,d=2,3,4,………,9)
 の6種類なので,
   6××=768(個)
 まとめると,
   (8+6)+192+768=974(個)

(2)i). 2桁のとき,10の1個.
ii).
3桁のとき,
 ア). 0が2個,1が1個のとき,100の1個.
 イ). 0が1個,1が2個のとき,110,101の2個.
 ウ). 0が1個,1が1個のとき,
   10a,1a0,a10,a01(a=2,3,4,………,9)
  の4種類なので,
   4×8=32(個)
iii).
4桁のとき,
 ア). 0が3個,1が1個のとき,1000の1個.
 イ). 0が1個,1が3個のとき,1110,1101,1011の3個.
 ウ). 0が2個,1が2個のとき,1100,1010,1001の3個.
 エ). 0が2個,1が1個のとき,
   100a,10a0,1a00,a001,a010,a100(a=2,3,4,………,9)
  の6種類なので,
   6×8=48(個)
 オ). 0が1個,1が2個のとき,
   110a,11a0,101a,1a10,10a1,1a01,a110,a101,a011
   (a=2,3,4,………,9)
  の9種類なので,
   9×8=72(個)
 カ). 0が1個,1が1個のとき,
   10ab,1a0b,1ab0,a01b,a0b1,a10b,a1b0,ab01,ab10
   (a,b=2,3,4,………,9)
  の9種類なので,
   9×=576(個)
 まとめると,
   1+(1+2+32)(1+3+3+48+72+576)=739(個)

(別解)(1)余事象を考える.
i).
0が0個,1が0個のとき,
   abcd(a,b,c,d=2,3,4,………,9)
  となるので,
   8=4096(個)
ii).
0が1個,1が0個,または0が0個,1が1個のとき,
   abcd,bacd,bcad,bcda(a=0,1;b,c,d=2,3,4,………,9)
  の4種類なので,
   4××=8=4096(個)
iii).
0が2個,1が0個,または0が0個,1が2個のとき,
   aabc,abac,abca,baac,baca,bcaa
   (a=0,1;b、c=2,3,4,………,9)
  の6種類なので,
   6××=768(個)
iv).
0が3個,1が0個,または0が0個,1が3個のとき,
   aaab,aaba,abaa,baaa
   (a=0,1;b=2,3,4,………,9)
  の4種類なので,
   4××8=64(個)
v).
0が4個,1が0個,または0が0個,1が4個のとき,0000,1111の2個
 まとめると,
   4096+4096+768+64+2=9026(個)
 これが余事象の数なので,求める個数は,
   10000−9026=974(個)
(参考)問題文に「少なくとも」という文句が入っているときは,大抵余事象を考える方が簡単であるが,この場合は簡単ではなかった.

(別解)(2)(1)の答から,1桁,2桁,3桁の数で0を使わない場合の数を引けばよい.
i).
1桁のとき,1個.
ii).
2桁のとき,2桁の正の整数の内で,数字0を使わないものを選べばよい.
 ア). 十の位が1のとき,11〜19の9個.
 イ). ).以外で一の位が1のとき,21〜91の8個.
iii).
3桁のとき,3桁の正の整数の内で,数字0を使わないものを選べばよい.
 ア). 1を3個使うとき,111の1個.
 イ). 1を2個使うとき,
   11a,1a1,a11(a=2,3,4,………,9)
  の3種類なので,
   3×8=24(個)
 ウ). 1を1個使うとき,
   1ab,a1b,ab1(a,b=2,3,4,………,9)
  の3種類なので,
   3×=192(個)
 まとめると,
   1+(9+8)(1+24+192)=235(個)
 故に求める個数は,
  974−235=739(個)

(別解)エクセルのマクロで解いてみた.上記の答案よりも断然楽であった.場合分けがほとんどいらない.
Option Explicit
Dim a(4) As Integer
Sub Macro1()
Sheets("Sheet1").Select
Cells(1, 1).Value = 0
Call saiki(1)
Range("A1").Select
End Sub
Sub saiki(ByVal n As Integer)
Dim b(1) As Integer
Dim j As Integer
a(n) = 0
While a(n) <= 9
If n < 4 Then
Call saiki(n + 1)
Else
For j = 0 To 1
b(j) = 0
Next j
For j = 1 To 4
If a(j) <= 1 Then
b(a(j)) = 1
End If
Next j
If b(0) + b(1) = 2 Then
Cells(1, 1).Value = Cells(1, 1).Value + 1
For j = 1 To 4
Cells(Cells(1, 1).Value, j + 1).Value = a(j)
Next j
Range("B" & Cells(1, 1).Value).Select
End If
End If
a(n) = a(n) + 1
Wend
End Sub

Option Explicit
Sub Macro2()
Sheets("Sheet2").Select
Cells(1, 1).Value = 0
Dim n As Integer
Dim nn As String
Dim n0 As Integer
Dim a(1) As Integer
Dim j As Integer
For n = 10 To 9999
For j = 0 To 1
a(j) = 0
Next j
nn = Right(Str(n), Len(Str(n)) - 1)
For j = 1 To Len(nn)
n0 = Val(Mid(nn, j, 1))
If n0 <= 1 Then
a(n0) = 1
End If
Next j
If a(0) + a(1) = 2 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
Range("A1").Select
End Sub

「浜田明巳」  09/05 1226分受信 更新9/23

(別解)(2)余事象を使って解く.
 10〜9999まで9990個ある.
i).
2桁の場合,10以外であればよいので,11〜99まで89個ある.
ii).
3桁の場合,
 ア). 1が3個の場合,111の1個.
 イ). 0が2個,1が0個の場合,a00(a=2,3,4,………,9)の8個.
 ウ). 0が0個,1が2個の場合,11a,1a1,a11(a=2,3,4,……,9)
  の3種類であるので,
   3×8=24(個)
 エ). 0が1個,1が0個の場合,ab0,a0b(a,b=2,3,4,………,9)
  の2種類であるので,
   2×=128(個)
 オ). 0が0個,1が1個の場合,ab1,a1b,1ab(a,b=2,3,4,………,9)
  の3種類であるので,
   3×=192(個)
 カ). 0が0個,1も0個の場合,abc(a,b,c=2,3,4,………,9)
  であるので,
   8=512(個)
iii).
4桁の場合,
 ア). 1が4個の場合,1111の1個.
 イ). 0が3個,1が0個の場合,a000(a=2,3,4,………,9)の8個.
 ウ). 0が0個,1が3個の場合,111a,11a1,1a11,a111(a=2,3,4,……,9)
  の4種類であるので,
   4×8=32(個)
 エ). 0が2個,1が0個の場合,ab00,a0b0,a00b(a,b=2,3,4,………,9)
  の3種類であるので,
   3×=192(個)
 オ). 0が0個,1が2個の場合,
   ab11,a1b1,a11b,1ab1,1a1b,11ab(a,b=2,3,4,………,9)
  の6種類であるので,
   6×=384(個)
 カ). 0が1個,1が0個の場合,
   abc0,ab0c,a0bc(a,b,c=2,3,4,………,9)
  の3種類であるので,
   3×=1536(個)  キ). 0が0個,1が1個の場合,
   abc1,ab1c,a1bc,1abc(a,b,c=2,3,4,………,9)
  の4種類であるので,
   4×=2048(個)
 ク). 0が0個,1も0個の場合,abcd(a,b,c,d=2,3,4,………,9)
  であるので,
   8=4096(個)
 故にまとめると,
   9990−{89+(1+8+24+128+192+512)(1+8+32+192+384+1536+2048+4096)}
  =9990−(89+865+8297)
  =9990−9251=739(個)

NO3「新俳人澄朝」09/06 1626分受信 更新9/23

NO4「スモークマン」    09/10 1746分受信

「スモークマン」    09/11 2245分受信 更新9/23

(1)0000から9999までの10000通りの電話番号のうち、0,1が少なくとも1回ともに現れる番号は全部でいくつあるか。

4
個、1,0のとき…2^4-2=14
3
個、1,0のとき…4*8*(2^3-2)=192
2
個、1,0のとき…4C2*8^2*(2^2-2)=768
合計=768+192+14=974

「スモークマン」    09/16 2041分受信

「スモークマン」    09/19 0101分受信 更新9/23

(2)0から9999までの整数のうちで、0,1が少なくとも1回ともに現れる整数はいくつあるか。

二桁以上しかあり得ない…
xx
10=1
xxx
1xx+yxx=2*10-1+8*2=35
xxxx
1xxx+yxxx=11xx+10xx+1yxx+y1xx+y0xx+yyxx
                      =2*10-1+10^2+8*(2*10-1)+8*(2*10-1)+8*(2*10-1)+8^2*2
                      =20-1+100+3*8*19+128
                      =19*25+100+128
                      =703

合計=703+35+1=739

ってことですかぁ...^^;...Orz〜想いの外、手こずりました...上手い方法を知りたいです ^^
Good Night

NO5「にいばりZ1209/11 0109分受信 更新9/23

(1)0000から9999までの10000通りの電話番号のうち、0,1が少なくとも1回ともに現れる番号は全部でいくつあるか。

A=0,B=1,K=2〜9とします

AとBは必ず入っていなければならないので

数字のパターンはAAAB,AABB,ABBB,ABKK,AABK,ABBKの6種類になり各数の順列を求めればいいことになります。

AAAB,AABB,ABBBは2進数で0001から1110の14通り

{4!/3!+4!/(2!*2!)+4!/3!=14とも計算できます}

ABKKは4/2!×8×8768(Kが8個あるので)

AABKは4/2!×896

ABBKも4/2!×896

合計は14+768+96+96974通りになります。

 

(2)0から9999までの整数のうちで、0,1が少なくとも1回ともに現れる整数はいくつあるか。

1)と同様に計算します

A=0,B=1,K=2〜9とします

AとBは必ず入っていなければならないので

数字のパターンはAAAB,AABB,ABBB,ABKK,AABK,ABBKの6種類になり各数の順列を求めればいいことになります。

ここで、Aが先頭にきてはいけないことに注意し

AAAB,AABB,ABBBは2進数で10から1110から11と111を除く11通り

ABKKは4/2!×8×8-3/2!×8×8576通り・・・・Aが先頭に来る場合の数を引きます

AABKは4/2!×8-2!×880通り・・・・AAが先頭に来る場合の数を引きます

ABBKは4/2!×8-3/2!×8=72通り・・・・Aが先頭に来る場合の数を引きます

合計は11+576+80+72739通りになります。

NO6Iga       09/14 2243分受信 更新9/23

Igaです。珍しく続けて解答します。とりあえず場合分けをして数えました。

 
(1)0000から9999までの10000通りの電話番号のうち、0,1が少なくとも1回ともに  現れる番号は全部でいくつあるか。

 @0000〜0999
  ・01□□ 十の位、一の位ともに10通りなので       10×10=100通り
  ・0□1□ 百の位は1を除いた9通り、一の位は10通りで  9×10= 90通り
  ・0□□1 百の位、十の位ともに1を除くので9通り      9× 9= 81通り
                           合計して、100+90+81=271通り

 A1000〜1999
  ・10□□
   
・1□0□
  ・1□□0
  これらは、@の0と1を入れ替えたものなので、        @と同じく271通り

 B2000〜2999
  ・201□      10通り
  ・20□1  1以外の 9通り
  ・2□01  0以外の 9通り
  ・210□  1以外の 9通り
  ・21□0  0以外の 9通り
  ・2□10    1,0以外の 8通り
                   合計して、 10+9+9+9+9+8=54通り

 C3000〜9999
  2000番台(B)と同様なので、Bとあわせて        54×8=432通り

 D @、A、Cを合計して、
     271×2+432=974通り


(2)0から9999までの整数のうちで、0,1が少なくとも1回ともに現れる整数はいくつあるか。

 (1)の場合の数から上位が0の場合を除けばいいので、
  (a)  0〜 9  0通り
  (b) 10〜99  10のみの 1通り
  (c) 100〜999
    ・10□  10通り
       
・1□0   9通り
    ・□01   8通り
       
・□10   8通り
   合計して   10+9+8+8=35通り
 これに、(1)のA、Cを加えると
         1+35+271+432=739通り

(自信がなかったので、エクセルで0000〜9999についてカウントして確かめました。)

 皆さん、答えがわかったら、一部でも構いませんから、解答とペンネームを添えて、

メールで送ってください。待っています。