過去ログ

uchinyan
#28752
>以前の考え方は間違ってるようで削除しました。。。Orz
実は、以前のお考えの方向での計算をやってみました。簡単ではないのですが、次のようになるようです。
十角形の頂点に反時計回りに 0 〜 9 の数字を振ります。
題意を満たす四桁の数を abcd とします。
a は何でもいいので 10 通り。以下、a を 0 に固定して考え、その結果を 10 倍します。
・c = 1, 9 となる場合
十角形では、c が a の左右どちらかの隣に来る場合です。
c = 1 の場合と c = 9 の場合は、対称性より同じです。
図をにらみながら考えると、b は a, c の隣には来れないので 6 通り。
さらに d は、c の空いてる隣に来れないだけなので、各 b に対して 6 通りずつあります。
そこで、2 * 6 * 6 = 72 通り。
・d = 1, 9 となる場合
十角形では、d が a の左右どちらかの隣に来る場合です。
d = 1 の場合と d = 9 の場合は、対称性より同じです。
ただし、c = 9, 1 となる場合は既に数えているので除きます。
先ほどと同様に考えればいいのですが、今度は場合分けが発生し、あまり簡単ではなく、図をにらみながら数えると、
2 * (1 * 5 + 1 * 4 + 4 * 3 + 1 * 4) = 2 * 25 = 50 通り。
・それ以外の場合
c, d が a の隣に来ない場合で、b も a の隣に来ないので、#28752の
>補題:1〜7 までの数を重複許さず3個並べるとき、隣りあう数にならないような場合の数は?
になります。もっとも、折角の十角形の図なので元の b, c, d = 2 〜 8 で図を見ながら考えました。
しかし、私もあまりうまい方法を思いつかず、結局、図をにらみながら地道に数えたところ、
b = 2, 8 : 2 * (4 * 3 + 1 * 4) = 32 通り
b = 3, 7 : 2 * (3 * 3 + 1 * 4) = 26 通り
b = 4, 5, 6 : 3 * (2 * 3 + 2 * 4) = 42 通り
結局、32 + 26 + 42 = 100 通り。
これは、スモークマンさんの結果と一致しているようです。
以上で、場合分けはすべてです。結局、求めるものは、
10 * (72 + 50 + 100) = 10 * 222 = 2220 通り
になります。
正解は出たものの、少なくともこの考え方では、かえって面倒です...

なお、漸化式まがいの解法も考えてみましたが、やはりいまひとつかな。
ポイントは、マサルさんの考え方 or 私の#28742の解法で指摘したことです。
ただ、一般化は簡単ではなさそうなので、一般式ではなく、四桁までの単なる数え上げです。
計算結果だけ書いておきます。
n 桁、ただし n = 1, 2, 3, 4 の場合だけ!、の連続した数字が一つでも隣り合う場合の数を f(n)、一つも隣り合わない場合の数を g(n) とすると、
f(1) = 0
g(1) = 10
f(2) = f(1) * 9 + g(1) * 2 = 0 * 9 + 10 * 2 = 0 + 20 = 20
g(2) = 10 * 9 - f(2) = 90 - 20 = 70
f(3) = f(2) * 8 + g(2) * 2 = 20 * 8 + 70 * 2 = 160 + 140 = 300
g(3) = 10 * 9 * 8 - f(3) = 720 - 300 = 420
f(4) = f(3) * 7 + g(3) * 2 - 10 * (1 * 1 + 1 * 1 + 5 * 2) = 300 * 7 + 420 * 2 - 10 * 12 = 2100 + 840 - 120 = 2820
g(4) = 10 * 9 * 8 * 7 - f(4) = 5040 - 2820 = 2220
となり、答えは 2220 通りになります。
なお、f(4) の 10 * (1 * 1 + 1 * 1 + 5 * 2) を引くところが、最初に述べたポイントの部分です。
ネコの住む家   11月25日(土) 0:01:03   MAIL:uchi@sco.bekkoame.ne.jp   28757

過去問題一覧へ戻る